您的位置:首页 > 编程语言 > Python开发

python实现快速排序

2017-12-05 14:21 281 查看
快速排序又称划分交换排序,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后按此方式对两部分数据分别进行快速排序,整个排序过程可递归进行

步骤为

从数列中挑出一个元素,称为“基准”(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)

稳定性:不稳定
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 快速排序 递归