冒泡排序和快速序.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大泡在上,小泡在下——冒泡排序基本原理。 冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。   由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。   用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复9,8,...,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,...,9,对于每一个i, j的值依次为1,2,...10-i。 C语言   void bubble_sort(int *x, int n)   {   int j, k, h, t;   for (h=n-1,h=k; h0; h--) /*循环到没有比较范围*/   {   for (j=0, k=0; jh; j++) /*每次预置k=0,循环扫描后更新k*/   {   if (*(x+j) *(x+j+1)) /*大的放在后面,小的放到前面*/   {   t = *(x+j);   *(x+j) = *(x+j+1);   *(x+j+1) = t; /*完成交换*/   k = j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/   }   }   }   }   程序1:   void bubble_sort(int array[],int n)   {   int i,j,flag,temp;   for(i = 0; i n-1; i++)   {   flag = 1;   for(j = 0; j n-i-1; j++)   {   if(array[j] array[j+1])   {   temp = array[j];   array[j] = array[j+1];   array[j+1] = temp;   flag = 0;   }   }   if(1 == flag)   printf(%d ,i); //首先打印出,在第几层循环时顺序已排好   break; //跳出循环   }   return;   }   程序2:(可进行2个数以上大小比较,程序参考作者:赵杰)   #includeSTDIO.H   main()   {   long a,x,k,i[100],s;   char ch;   for(a=0;;a++)   {   printf(输入一个数,输完一个数按回车,最后一个数末尾要加n:);   scanf(%ld%c,i[a],ch);   if(a==99)   {   printf(注意!输入的数超过100个);   break;   }   else if(ch==n)   break;   }   do{   x=0;   for(k=0;ka;k++)   {   if(i[k]i[k+1])   {   s=i[k+1];i[k+1]=i[k];   i[k]=s;x++;   }   }   }while(x!=0);   printf(从小到大排列为:);   for(k=0;ka;k++)   printf(%ld,i[k]);   printf(%ld,i[a]); }PHP   代码1:   ?php   //冒泡排序(一维数组)   function bubble_sort($array)   {   $count = count($array);   if ($count = 0) return false;   for($i=0; $i$count; $i++)   {   for($j=$count-1; $j$i; $j--)   {   if ($array[$j] $array[$j-1])   {   $tmp = $array[$j];   $array[$j] = $array[$j-1];   $

文档评论(0)

pao0969363mou8 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档