首页 > 编程语言 > 详细

python 排序算法

时间:2019-02-17 22:03:14      阅读:280      评论:0      收藏:0      [点我收藏+]

冒泡排序: 

 1 #coding:utf-8
 2 ‘‘‘
 3 比较相邻的元素,每一趟交换后,最后的元素是最大的。
 4 第一次比较n-1次,第二次比较n-2次。。。第n-1次比较1次
 5 进行n-1次冒泡次数
 6 最优时间复杂度O(n),最坏时间复杂度O(n^2)
 7 ‘‘‘
 8 
 9 def bubble_sort(b_list):
10     n = len(b_list)
11     for j in range(0, n-1):
12         count = 0
13         for i in range(0, n-1-j):
14             if b_list[i] > b_list[i+1]:
15                 count += 1
16                 t = b_list[i+1]
17                 b_list[i+1] = b_list[i]
18                 b_list[i] = t
19         if count == 0:
20             break

 



简单选择排序

 1 #coding:utf-8
 2 ‘‘‘
 3 找到最小的放到最前面,接着从剩余的继续找最小的,放到第二个。
 4 一共找n-1次,最优O(n),最坏O(n^2)
 5 ‘‘‘
 6 
 7 def select_sort(s_list):
 8     n = len(s_list)
 9     for j in range(0, n-1):
10         min_v = j
11         for i in range(j+1, n):
12             if s_list[i] < s_list[min_v]:
13                 min_v = i
14         t = s_list[j]
15         s_list[j] = s_list[min_v]
16         s_list[min_v] = t

 




插入排序

 1 #coding:utf-8
 2 ‘‘‘
 3 从第二个开始 和前面的有序序列比较,比较大小插进去
 4 最优O(n),最坏O(n^2)
 5 ‘‘‘
 6 
 7 def insert_sort(i_list):
 8     n = len(i_list)
 9     for j in range(1, n):
10         i = j
11         while i > 0:
12             if i_list[i] < i_list[i-1]:
13                 t = i_list[i]
14                 i_list[i] = i_list[i-1]
15                 i_list[i-1] = t
16                 i = i - 1
17             else:
18                 break

 

python 排序算法

原文:https://www.cnblogs.com/dreamhai/p/10392793.html

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