冒泡法:基础排序算法

Posted byy18

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡法:基础排序算法相关的知识,希望对你有一定的参考价值。

交换排序;结果分升序和降序两种排列
以升序为例:第一轮比较:两两比较大小,大值向右挪到,直到最大值挪动到索引为n-1的位置结束
                     第二轮比较:两两比较大小,大值向右挪到,直到最大值挪动到索引为n-2的位置结束
                     依此类推
时间复杂度O(n)
 
简单代码实现
1 L=list(iterable) # L里的元素为int类型
2 for i in range(len(L)-1):
3     count = 1
4     for j in range(len(L)-1-i):
5         if L[j] > L[j+1]:
6             L[j],L[j+1] = L[j+1],L[j]
7             count += 1  # 记录交换次数
8     print(count)
9 print(L)

 

优化代码

 1 L=list(iterable) # L里的元素为int类型
 2 sum = 0 
 3 for i in range(len(L)-1):
 4     flag = False  # 打标记
 5     count = 0 
 6     for j in range(len(L)-1-i):
 7         if L[j] > L[j+1]:
 8             L[j],L[j+1]=L[j+1],L[j]
 9             flag = True
10      count += 1 #计算每次遍历交换了几次
11     print(count) 
12     sum += 1 # 计算总共遍历了几行
13     if not flag: # 如果在某次遍历一次也没有交换,则break打断
14         break
15 print({},{}.format(L,sum))

 

以上是关于冒泡法:基础排序算法的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序法

php四种基础算法:冒泡,选择,插入和快速排序法PHP基础教程

php四种基础算法:冒泡,选择,插入和快速排序法

基础排序算法总结(代码+图片分析)

php四种基础算法:冒泡,选择,插入和快速排序法

冒泡法