排序算法之冒泡排序-创新互联

【六月五号】排序算法之冒泡排序

     今天说的仍然是一中简单排序——冒泡排序,时间复杂度O(n^2)。
     其基本思想是:
     通过相邻元素之间的比较和交换使较小的元素逐渐从后向前移动,就像水底的气泡一样逐渐向上冒。
     具体过程如下:
       首先比较d[n]和d[n-1],若d[n]    假设我们将把225  220  41  190  242  185  42  231这8个数排序
    排序过程演示
初始关键字:[225  220  41  190  242  185  42  231]不交换
d[8]和d[7]:[225  220  41  190  242  185  42  231]交换
d[7]和d[6]:[225  220  41  190  242  42  185  231]交换
d[6]和d[5]:[225  220  41  190  42  242  185  231]交换
d[5]和d[4]:[225  220  41  42  190  242  185  231]不交换
d[4]和d[3]:[225  220  41  42  190  242  185  231]交换
d[3]和d[2]:[225  41  220  42  190  242  185  231]交换
d[2]和d[1]:[41  225  220  42  190  242  185  231]

以上是一趟排序的演示,总共需要进行n-1趟排序
第一趟排序后:41  [225  220  42  190  242  185  231]
第二趟排序后:41  42  [225  220  185  190  242  231]
第三趟排序后:41  42  185  [225  220  190  231  242]
第四趟排序后:41  42  185  190  [225  220  231  242]
第五趟排序后:41  42  185  190  220  [225  231  242]
第六趟排序后:41  42  185  190  220  225  [231  242]
第七趟排序后:41  42  185  190  220  225  231  242

创新互联建站是一家专业提供苏仙企业网站建设,专注与成都网站设计、网站制作、H5网站设计、小程序制作等业务。10年已为苏仙众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

Pascal代码:

const mx=10000;

var

  d:array[1..mx]of longint;

  n,i,j,k:longint;

begin

   readln(n);

   for i:=1 to n do read(d[i]);

   for i:=1 to n-1 do

   begin

       for j:=n-1 downto i do

       if d[j+1]

       begin    //相邻元素交换

           k:=d[j]; d[j]:=d[j+1]; d[j+1]:=k;

       end;

   end;

   for i:=1 to n do writeln(d[i]);

End.

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


当前标题:排序算法之冒泡排序-创新互联
分享网址:http://scyanting.com/article/ccicep.html