python实现快速排序
来源:互联网 发布:人工智能要学什么 编辑:程序博客网 时间:2024/05/16 09:46
快速排序又称划分交换排序,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后按此方式对两部分数据分别进行快速排序,整个排序过程可递归进行
步骤为
- 从数列中挑出一个元素,称为“基准”(pivot)
- 排序数列,所有比基准小的都放在基准前,所有比基准大的都放在基准后。在这个分区结束后,该基准就处于数列的中间位置。这个过程叫做分区。
- 递归地把小于基准元素的子数列和大于基准元素的子数列排序
递归的最底部情形,是数列的大小是0或1
def insert_sort(alist): # 从第二个位置,即下标为1的元素开始向前插入 for i in range(1,len(alist)): # 从第i个元素开始向前比较,如果小于前一个元素,交换位置 for j in range(i,0,-1): if alist[j] < alist[j-1]: alist[j],alist[j-1] = alist[j-1],alist[j]
时间复杂度
- 最优时间复杂度:O(nlogn)
- 最坏时间复杂度:O(n2)
- 稳定性:不稳定
阅读全文
0 0
- 快速排序Python实现
- python实现快速排序
- Python实现快速排序
- python 实现快速排序
- Python实现快速排序
- 快速排序Python实现
- python实现快速排序
- Python实现快速排序
- python实现快速排序
- python 实现快速排序
- Python实现快速排序
- python实现快速排序
- Python实现快速排序
- python实现快速排序
- Python实现快速排序
- Python实现快速排序
- python实现快速排序
- 快速排序的python实现
- 关于javascript种不常用的表达式
- 总结大纲
- LeetCode 413. Arithmetic Slices [Medium]
- 一张图探秘施耐德电气全生命周期服务的无限可能
- 数组中的元素的基本的操作方式
- python实现快速排序
- Android 音视频录制(2)——Buffer录制
- jvm详解
- [LTE] LTE基本架构
- 解析U盘病毒传播之文件欺骗
- LeetCode 210 Course Schedule II
- Jdk1.6和weblogic11g安装
- Linux中SVN的备份与恢复
- PASCAL VOC数据集分析(分类部分)