数据结构排序算法之快速排序.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构排序算法之快速排序

数据结构排序算法之 快速排序 算法介绍 快速排序也是交换类排序的一种。快速排序是选择一个数据作为枢纽,将啊序列分为两部分,枢纽的一边比它小(至少不大于),另一边比它大(至少不小于)。 执行流程 原始序列:23 45 12 90 78 56 I J 进行第一趟排序,选择23作为枢纽,整个过程是一次交替扫描的过程 使用最后一个元素J=56开始从右向左扫描 23 45 12 90 78 56 5623不交换,J-- I J 23 45 12 90 78 56 7823 J-- I J 23 45 12 90 78 56 1223 交换 I++ I J 12 45 90 78 56 4523 交换 J-- I J 12 45 90 78 56 此时I=J 所以这个位置为枢纽的位置 IJ 12 23 45 90 78 56 一趟排序结束 2) 然后从枢纽的位置开始分为两部分,按照同样的方法进行排序即可,也就递归。 示例代码 #includestdio.h void quick_sort(int a[],int s,int e) { int tmp; int i =s; int j=e; if(se) { tmp =a[s]; while(i!=j) { while(jia[j]tmp)j--; if(ij) { a[i]=a[j]; i++; } while(jia[i]tmp)i++; if(ij) { a[j]=a[i]; j--; } } a[i]=tmp; quick_sort(a,s,i-1); quick_sort(a,i+1,e); } } int main() { int a[] ={-12,23,1,46,6,23423,456,1,56,0,2,24,46,68,\ 4,5234,234,436,654,576,43,354,432,32,4,\ 23,4,2,3243,45,6,432,423,6,5,7,86,8,54,4,5435,\ 3,5343,43,543,6,54,6,45,654,654,3,45,3,423,4,2,\ 34,547,87,686867,4,53,32,23,432,34,43,5667,\ 8897646,35,3,45,3,53,4,333,54,765,7,5,66,45,45353,\ 534,5,34,6547,685,4,543,5,3,53,234,2,34,23,4,2,43,6,\ 765,7,8,9,9,9,0,0,4534,52,3,234,2,41,435,23,123,235,\ 436,7,43,23,243,3121}; int i =0; for(i=0;isizeof a/sizeof(int);i++) printf(%d ,a[i]); printf(\n\n\n\n\n); quick_sort(a,0,sizeof(a)/sizeof(int)-1); for(i=0;isizeof a/sizeof(int);i++) printf(%d ,a[i]); printf(\n); return 0; } 执行结果 ky@ky-S910-X31E:~/libz/628$ gcc quicksort.c -oquick ./quick ky@ky-S910-X31E:~/libz/628$ ./quick -12 23 1 46 6 23423 456 1 56 0 2 24 46 68 4 5234 234 436 654 576 43 354 432 32 4 23 4 2 3243 45 6 432 423 6 5 7 86 8 54 4 5435 3 5343 43 543 6 54 6 45 654 654 3 45 3 423 4 2 34 547 87 686867 4 53 32 23 432 34 43 5667 8897646 35 3 45 3 53 4

文档评论(0)

abf4675328 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档