'''
快速排序
时间复杂度:O(nlogn)~O(n^2), O(nlogn)
空间复杂度:O(logn)
稳定性:不稳定
'''
def quickSort(alist):
if len(alist) < 2:
return alist
mid = alist[len(alist) // 2]
left, right = [], []
alist.remove(mid)
for item in alist:
if item < mid:
left.append(item)
else:
right.append(item)
return quickSort(left) + [mid] + quickSort(right)
# def quick_sort(alist):
# quickSortHelper(alist, 0, len(alist)-1)
# def quickSortHelper(alist, first, last):
# if first >= last:
# return
# pivotValue = alist[first]
# left = first + 1
# right = last
# while left <= right:
# while left <= right and alist[left] <= pivotValue:
# left += 1
# while left <= right and alist[right] >= pivotValue:
# right -= 1
# if left < right:
# alist[left], alist[right] = alist[right], alist[left]
# alist[first], alist[right] = alist[right], alist[first]
# quickSortHelper(alist, first, right-1)
# quickSortHelper(alist, right+1, last)
if __name__ == '__main__':
arr = [4, 5, 8, 2, 3, 6, 7, 1]
# quick_sort(arr)
# print(arr)
print(quickSort(arr))
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Python实现10大排序算法.rar (11个子文件)
Python实现10大排序算法
04_希尔排序.py 768B
07_堆排序.py 833B
排序.ipynb 13KB
05_归并排序.py 748B
02_选择排序.py 468B
03_插入排序.py 489B
10_基数排序.py 712B
08_计数排序.py 543B
09_桶排序.py 775B
06_快速排序.py 1KB
01_冒泡排序.py 1KB
共 11 条
- 1
资源评论
YOLO数据集工作室
- 粉丝: 442
- 资源: 1569
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功