ssc源码出售 Python实现冒泡排序

算法介绍
冒泡排序(Bubble Sort)是最容易理解的排序算法之一,ssc源码出售【企 娥:217 1793 408】但是运行效率有点低。

冒泡过程:对待排序部分(假设有M个元素)从头开始进行两两比较,如果第一个比第二个大(升序),就交换他们两个。这样本轮排序结束后就可以保证值最大的元素在最右边,那么下次只需要对前面(M-1)个数进行冒泡。

完整的冒泡排序就是进行N-1(N为数列长度)次的冒泡。

代码实现
def bubbleSort(source):
for i in range(len(source)-1, 0, -1): # i控制待排序区间的长度
for j in range(i): # 对下标为0到i-1的区域排序
if source[j] > source[j + 1]: # 保证值大的元素往后移
source[j], source[j + 1] = source[j + 1], source[j]
return source

s = [8,6,13,7,17,1,4,5,2]
print(bubbleSort(s))
输出:
[1, 2, 4, 5, 6, 7, 8, 13, 17]

冒泡排序算法还可以进行改进,就是在算法中加入一个布尔变量来记录该轮排序是否产生过数据交换,若在某一轮排序中未发生数据交换,则说明待排序部分已经有序,无需再进行排序。

猜你喜欢

转载自blog.51cto.com/13963284/2174823