耿雨飞的个人博客
首页
文章搜索
人工智能
项目相关
首页
文章搜索
人工智能
项目相关
登录
注册
[[ slide_text ]]
[[ item.c ]]
0
0
Algorithms 快速排序
发布时间:
2023-03-22
作者:
gengyufei
来源:
gengyufei个人博客
数据结构与算法
# 摘要 - 从数列中,挑选出一个基准值 - 小于基准值的放在左侧,大于基准值的放在右侧,在该分区完成后,该基准值就处于中间位置 - 递归:将基准值左侧、右侧的数列,继续进行分区操作 # 实例 ``` def partion(li, left, right): base = li[left] while left < right: while left < right and li[right] >= base: right -= 1 li[left] = li[right] while left < right and li[left] <= base: left += 1 li[right] = li[left] li[left] = base return left def quick_sort(li, left, right): if left < right: mid = partion(li, left, right) quick_sort(li, left=left, right=mid-1) quick_sort(li, left=mid+1, right=right) li = [9, 8, 0, 1, 2, 3, 4, 5, 6, 7] quick_sort(li=li, left=0, right=len(li)-1) print(f'quick_sort sorted list: {li}') ``` 时间复杂度:O(nlogn) 极端情况:有序list,使用快排,时间复杂度为 n²。
0
0
已经是第一篇啦
已经是最后一篇啦
你觉得文章怎么样
发布评论
123 人参与,0 条评论