python用冒泡法排序,冒泡算法python
气泡排序一、气泡排序思想概述气泡排序是指重复比较从数组左端开始相邻两个要素的大小,根据比较结果交换两个数字的位置,最终使数组要素满足升序或降序的排列。 在这个过程中,元素像泡沫一样,从左到右依次“漂浮”在最上面,所以这个算法被称为“泡沫排序”。
按升序说明气泡排序算法的执行过程。
1 .比较相邻两种元素的大小,前一种元素大于后一种元素时,交换两种元素的位置。
2 .对列表按顺序执行1操作,直到列表中的最后一个元素。 此时,最大元素被交换为最后一位。
3 .对列表中的所有元素重复操作1、2,最后一个元素除外。
4 .对越来越少的元素重复上述操作,直到没有需要比较的元素对。
二、实现泡沫排序Python实现泡沫排序Python3:
#-- coding : utf-8-- ' ' createdontueaug 13173360193360582019 @ author : cc ' ' def bubble _ sort (数据) ) ) ) 外层循环控制每回合比较次数forIinrange(n-1 ) : # )内层循环为元素比较和forjinrange(n-I-1 ) : if data [ j ] data [ J1 ] 333330 data [ j ] data[j 1]=data[j 1],data[j] flag=True #not flag表示没有交换任何内容,即列表已经交换了ifnotflag:breakprint(data )。
[0、1、2、2、3、4、5、6、7、8、8][1、2、2、3、4]3,如果列表元素按照要求的顺序排列,则冒泡排序时间的复杂性不遍历列表一次最坏情况:列表元素按相反顺序排列,总比较次数为(n-1 ) (n-2 )… 1,时间复杂度为o ) n^2。
因此,冒泡排序的平均时间复杂度为o(n^2)。