1 / 28
文档名称:

冒泡排序算法及程序实现.ppt

格式:ppt   大小:1,397KB   页数:28页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

冒泡排序算法及程序实现.ppt

上传人:1557281760 2021/12/6 文件大小:1.36 MB

下载得到文件列表

冒泡排序算法及程序实现.ppt

文档介绍

文档介绍:冒泡排序算法及程序实现
由于每一趟加工都是将本趟最小(大)的数元素像气泡一样浮至本趟的顶端位置,所以称作冒泡排序。但冒泡也有变式,即将数组元素进展两两比较,假设相邻两个元素中的数据不符合排序,就交换位置。
某数组c共由4个元素构成,每个元素的值如下表所示:
数组元素
c(1)
c(2)
c(3)
c(4)

23
38
30
15
采用冒泡排序思想进展升序排序,从最下面的一个元素起,自下而上的比较相邻两个元素中的数据,整个排序过程如下所示:
①第一趟加工处理过程:
第一趟加工共比较3次,处理完成后,最小的元素15存储在了c(1)中。
②第二趟加工处理过程:
第二趟加工共比较2次,处理完成后,第2个最小的元素23存储在了c(2)中。
③第三趟加工处理过程:
第三趟加工共比较1次,处理完成后,第3个小的元素32存储在了c(3)中。
4个元素共需进展3趟加工处理,总的比较次数为3+2+1=6次。
对n个元素的数组,用冒泡法进展排序时,共需比较n(n-1)/2次。
2.冒泡排序算法的程序实现
冒泡排序程序的实现可用双重For循环来实现,外层For循环控制是第几遍加工,内层For循环控制进展排序的数组元素下标的变化范围。由于每趟加工完成后,进展排序的范围会发生变化(每趟减少一个),故内层For循环变量的下界由外层循环变量决定。
现有n个数据,分别存放在数组变量a(1 To n)当中,用冒泡排序算法表示构造如下:
用冒泡排序算法程序实现的片段如下:
For i=1 To n-1
For j=n To i+1 Step -1
If a(j)<a(j-1) Then
t=a(j):a(j)=a(j-1):a(j-1)=t
End If
Next j
Next i
当外循环变量i取1时,即第1趟加工时,内循环变量j的下界为i+1(值为2),即从a(n)开场自下而上的比较相邻的两个元素中的数,如果下面的数比上面的小,那么相互交换,直到a(2)与a(1)的比较为止,这样第1趟加工后将最小的数放到了a(1)中;第2趟加工,内循环变量j的下界为3,直到a(3)和a(2)的比较为止,把最小的数放到了a(2)中;这样,经过n-1趟加工后,就完成了数组从小到大的排序。
中间的If语句,完成相邻的两个元素的比较过程,如果下面的数a(j)比上面的数a(j-1)小,那么交换a(j)与a(j-1)的值。用语句t=a(j):a(j)=a(j-1):a(j-1)=t来实现。
3.读程序时,判断冒泡排序的结果是从小到大还是从大到小,方法就是分析内循环中的条件判断语句,如果交换数据的条件是前面元素小于后面元素,如a(j)<a(j+1)、a(j)>a(j-1),那么排序结果是从大到小。反之,如果交换数据的条件是前面元素大于后面元素,如a(j)>a(j+1)、a(j)<a(j-1),那么排序结果是从小到大。
注意:以下代码也可实现对数组h(共n个元素)进展冒泡排序:
For i = 1 To n - 1
For j = i + 1 To n
If h(i) > h(j) Then
t = h(i): h(i) = h(j): h(j) = t
End If
Next j
Next i