首 页
关于美图
网站案例
网站建设
微网站开发
解决方案
建站资讯
028-86922220
网站建设资讯
为你提供网站建设行业资讯、网站优化知识、主机域名邮箱、网站开发常见问题等。
当前位置:
首页
-
全部资讯
全 部
乐山网站建设
乐山网站优化
乐山网站设计
乐山网站制作
乐山网站营销
乐山小程序开发
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://whjierui.cn/article/gcdohc.html
其他资讯
腾讯云轻量云服务器ssh 腾讯云轻量云服务器远程连接不了
叠字母函数法C语言 c语言字符叠加
老王app怎么加域名 老王app怎么加域名的
包含sap系统耗材入库流程的词条
如何搭建go语言环境变量 go语言开发环境搭建
028-86922220
244261566
回到顶部