# -*- 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...
- 这几天在追《我们的少年时代》,起初只为段子手薛之谦,却迷上了这部描述高中生活的青春剧。高中是很多人记忆正常运转中必...