首页 > 编程语言 > 详细

冒泡的Python实现

时间:2019-10-06 15:24:13      阅读:63      评论:0      收藏:0      [点我收藏+]

冒泡是一个最简单的排序算法,但是我认为还是有一些地方值得思考和研究来加深对这个排序的理解。

个人总结以下几点

1.待排数列如果长度唯一或者不合法就不必再继续走完整个循环

2.相邻元素两两交换

3.针对剩下的待排元素已经出现有序情况时,可以设置一个动态布尔类型的flag,没有出现过交换,那么剩下的循环就不在执行

4.针对待排元素出现局部有序的情况,可以记录下每次有序区的临界索引作为边界。再次进入循环跳过有序区

5.无论怎么优化。冒泡排序的时间复杂度都是O(n2)

 1 def bubble_sort(arr_list):
 2     if len(arr_list)<=1:
 3         return arr_list
 4     else:
 5         border=len(arr_list)-1  #The border of the already sorted array
 6         last_cmp_index=0    #Using for recording and passing the last stoped index
 7         for i in range(len(arr_list)):
 8             flag=False
 9             for j in range(border):
10                 if arr_list[j]>arr_list[j+1]:
11                     arr_list[j],arr_list[j+1]=arr_list[j+1],arr_list[j]
12                     last_cmp_index=j
13                     flag=True
14             if not flag:
15                 break
16             border=last_cmp_index
17         return arr_list

 

冒泡的Python实现

原文:https://www.cnblogs.com/walterwsj/p/11627390.html

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