首页 > 编程语言 > 详细

python,冒泡排序与快排

时间:2021-06-03 10:39:07      阅读:36      评论:0      收藏:0      [点我收藏+]

1.冒泡排序

  - 原理:拿自己与上面一个比较,如果上面一个比自己小就将自己和上面一个调换位置,依次再与上面一个比较,第一轮结束后最上面那个一定是最大的数

1 def bubble_sort(li):
2     for i in range(len(li)-1):
3         for j in range(len(li)-i-1):
4             if li[j] > li[j+1]:
5                 li[j],li[j+1]=li[j+1],li[j]
6 
7 li = [1,5,2,6,3,7,4,8,9,0]
8 bubble_sort(li)
9 print(li)               # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2.快排

 1 def quick(list):
 2     if len(list) < 2:
 3         return list
 4 
 5     tmp = list[0]  # 临时变量 可以取随机值
 6     left = [x for x in list[1:] if x <= tmp]  # 左列表
 7     right = [x for x in list[1:] if x > tmp]  # 右列表
 8     return quick(left) + [tmp] + quick(right)
 9 
10 li = [4,3,7,5,8,2]
11 print quick(li)  # [2, 3, 4, 5, 7, 8]
12 
13 #### 对[4,3,7,5,8,2]排序
14 ‘‘‘
15 [3, 2] + [4] + [7, 5, 8]                 # tmp = [4]
16 [2] + [3] + [4] + [7, 5, 8]              # tmp = [3] 此时对[3, 2]这个列表进行排序
17 [2] + [3] + [4] + [5] + [7] + [8]        # tmp = [7] 此时对[7, 5, 8]这个列表进行排序
18 ‘‘‘

  -  注:快排代码实现(类似于二叉树 递归调用)----右手左手一个慢动作,右手左手一个慢动作重播

技术分享图片

 

python,冒泡排序与快排

原文:https://www.cnblogs.com/ziheng8/p/14843708.html

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