首页 > 编程语言 > 详细

冒泡法:基础排序算法

时间:2018-04-01 11:32:40      阅读:173      评论:0      收藏:0      [点我收藏+]
交换排序;结果分升序和降序两种排列
以升序为例:第一轮比较:两两比较大小,大值向右挪到,直到最大值挪动到索引为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))

 

冒泡法:基础排序算法

原文:https://www.cnblogs.com/byy18/p/8685838.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!