码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡法:基础排序算法

时间:2018-04-01 11:54:53      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:最大值   冒泡   结果   color   nbsp   not   排序   style   时间复杂度   

交换排序;结果分升序和降序两种排列
以升序为例:第一轮比较:两两比较大小,大值向右挪到,直到最大值挪动到索引为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))

 

冒泡法:基础排序算法

标签:最大值   冒泡   结果   color   nbsp   not   排序   style   时间复杂度   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!