网站大量收购独家精品文档,联系QQ:2885784924

数组排序几种方法.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数组排序几种方法

★数组排序的几种方法! ????? 问题:数组排序(即按某种特定的顺序排列数据,如升序或降序)是最重要的计算应用之一,银行用帐号对所有的支票进行能够排序,并根据排序结果准备月底的财务报告,学校学生成绩管理系统用数组排序的方法将考试成绩从高到低进行排名,数组排序方法很多,有直接插入排序、冒泡排序、快速排序、直接选择排序,下面来详细介绍这四种基本的排序方法及其实现。 1,直接插入排序:当数据表A中每个元素距其最终位置不远,数据表A按关键字值基本有序,可用此方法排序较快。 2,冒泡排序法:将较小的值“上浮”到数组顶部,而较大值“下沉”到数组底部,这种排序技术要比较好几趟,每一趟要比较连续的数组元素对,如果某对数值是按升序排序的(或者这两个值相等),那就保持原样,如果某对数组是按降序排列的,就要交换它们的值。 3,快速排序法:???速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 4,直接选择排序法:直接选择排序的作法是:第一趟扫描所有数据,选择其中最小的一个与第一个数据互换;第二趟从第二个数据开始向后扫描,选择最小的与第二个数据互换;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。它比起冒泡排序有一个优点就是不用不断的交换。 程序1:直接插入法实现对数组的排序! #includestdio.h #includeconio.h int main() { ??????? void InsertSort(int [],int); ??????? int a[7]={8,10,2,3,1,7,13}; ??????? int i; ??????? InsertSort(a,7); ??????? for(i=0;i7;i++) ?????????? printf(%4d,a[i]); ??????? getch(); } void InsertSort(int a[],int count) { ??????? int i,j,temp; ??????? for(i=1;icount;i++)??? ??????? { ?????????? temp=a[i]; ?????????? j=i-1; ?????????? while(a[j]temp j=0) ?????????? { ???????????? a[j+1]=a[j]; ????????????? j--; ?????????? } ?????????? if(j!=(i-1))????? ???????????? a[j+1]=temp; ???????? } } 程序2:冒泡法实现对数组的排序! #includestdio.h #includeconio.h int main() { ???????? void BubbleSort(int []); ???????? int a[10]; ???????? int i,j,temp; ???????? printf(Input tem integer numbers for a[10]:); ???????? for(i=0;i10;i++) ??????????? scanf(%d,,a[i]); ???????? printf(\n); ???????? BubbleSort(a); ???????? printf(The sorted array is:\n); ??????????? for(j=0;j10;j++) ???????????????? printf(%d,,a[j]); ???????? printf(\n\n); ???????? getch(); } void BubbleSort(int array[]) { ???????? int i,j,temp; ?????????? for(j=0;j9;j++) ????????????? for(i=0;i9-j;i++) ???????????????? if(array[i]array[i+1]) ????????????????? { ????????????????????? temp=array[i]; ????????????????????? array[i]=array[i+1]; ????????????????????? array[i+1]=temp; ?????????????????? } } 程序3:快速排序法实现对数组的排序! #includestdio.h #includeconio.h #define

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档