# -*- coding: utf-8 -*-
def sort(arr, lo, hi):
if hi <= lo:
return
# 分片
mid = partition(arr, lo, hi)
sort(arr, lo, mid - 1)
sort(arr, mid + 1, hi)
def partition(arr, lo, hi):
value = arr[lo]
i = lo + 1
j = hi
while True:
while arr[i] <= value and i != hi:
i += 1
while arr[j] > value and j != lo:
j -= 1
if i < j:
# 交换 i、j 位置的值
temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
else:
# 交换 low、j 位置的值
temp = arr[j]
arr[j] = arr[lo]
arr[lo] = temp
break
return j
arrTest = [10, 9, 7, 8, 3, 1]
sort(arrTest, 0, len(arrTest) - 1)
print(arrTest)
数据结构(四)快速排序
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 数据结构实验之排序四:寻找大富翁 Time Limit: 200MS Memory Limit: 512KB Pr...
- 这几天在追《我们的少年时代》,起初只为段子手薛之谦,却迷上了这部描述高中生活的青春剧。高中是很多人记忆正常运转中必...