我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601
网站建设
移动开发
小程序开发
运维推广
网站推广
网站推广
运维外包
运维外包
网站报价
经典案例
网站知识
关于我们
网站建设知识
十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
python快速排序实现
import random
num_list = []
for x in range(30):
num_list.append(random.randint(1, 500))
list_len = len(num_list)
print(list_len)
def quick_sort(array, begin, end):
# (1) 104, 17, 510,30,100 这是用来说明的例子,请按前面的序号阅读
# i j
if begin < end:
i, j = begin, end
# 设置临时基准
temp = array[i]
# --------------------------------------------
while i < j:
# 如果列表后边的数,比基准数大或相等,j则前移一位,直到出现第一个比基准数小的数
while (i < j) and (array[j] >= temp):
j = j - 1
# 找到后把第j个元素赋值给第i个元素
array[i] = array[j] # (2)100,17,510,30,100 (4)100, 17, 30, 30, 510
# i j i j <-- j
# 若前边的数比基准数小或相等,i则后移一位,直到出现第一个比基准数大的数
while (i < j) and (array[i] <= temp):
i = i + 1
array[j] = array[i] # (3)100,17,510, 30,510 (5) 00,17,30, 30, 510
# i --> i j i-->ij
# ---------------------------------------------
# 做完第一轮while比较之后,list被分成了两个list,且i=j
array[i] = temp # (6)100,17,30,104,510 这是第一轮结束之后的情况.
# ij
# 此时,以第一轮选择的temp为分割点,分成两个list.左边list里的项都比temp小,右边list里的项都比temp大
# 递归前后半区
quick_sort(array, begin, i - 1)
quick_sort(array, j + 1, end)
return array
print("The sorted result is : ")
quick_sort(num_list, 0, len(num_list)-1)
print(num_list)
本文标题:python快速排序实现
浏览路径:
http://shouzuofang.com/article/gcdohc.html
其他资讯
linux自定义程序命令 linux自定义变量
ios开发关联域做什么 苹果开发者账号被关联
html5date标签 html5section标签
android分包处理 分包下载
android的图片控件 android 图片