python实现快速排序
2017-12-05 14:21
281 查看
快速排序又称划分交换排序,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后按此方式对两部分数据分别进行快速排序,整个排序过程可递归进行
排序数列,所有比基准小的都放在基准前,所有比基准大的都放在基准后。在这个分区结束后,该基准就处于数列的中间位置。这个过程叫做分区。
递归地把小于基准元素的子数列和大于基准元素的子数列排序
递归的最底部情形,是数列的大小是0或1
最坏时间复杂度:O(n2)
稳定性:不稳定
步骤为
从数列中挑出一个元素,称为“基准”(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)
稳定性:不稳定
相关文章推荐
- 快速排序--C语言实现、python实现
- Python实现冒泡排序、选择排序、插入排序、快速排序、归并排序、二分法查找算法(基于《算法导论》伪代码)
- 快速排序之python实现
- 快速排序的实现(python)
- python实现排序算法一:快速排序
- python 3.2 实现快速排序 源代码
- 使用python实现快速排序
- 算法:快速排序的Python实现
- Python实现快速排序
- 快速排序、堆排序、归并排序的python实现
- 利用Python实现快速算法排序
- python简洁代码实现快速排序
- python 实现冒泡排序与快速排序 遇到的错误与问题
- python实现快速排序
- python 算法 排序实现快速排序
- 快速排序的python实现与考点
- 【编程练习】快速排序,Java和Python实现
- 快速排序(伪代码 c/c++ python 实现)
- 快速排序的python实现
- 快速排序的算法思想及Python版快速排序的实现示例