标签:冒泡 第一个 ++ 相同 数组元素 有序 相对 round 基本
快速排序
快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
算法介绍
def partition(li,left,right):#left左边第一个索引 right右边第一个索引
tmp = li[left]
while left < right : #保证不止一个数
while left < right and li[right] >= tmp :# 从右往左找比tmp小的数
right -= 1 往左走一步
li[left] = li[right] #把右边的值写在左边的空位上
while left < right and li[left] <= tmp :
left+=1
li[right] = li[left]
li[left] = tmp
return left
def quick_sort(li,left,right):
if left<right:
mid = partition(li,left,right)
quick_sort(li,left,mid-1)
quick_sort(li,mid+1,right)
li= [15,18,12,11,13,14,16,17]
quick_sort(li,0,len(li)-1)
快速排序(Quicksort)是对冒泡排序的一种改进。
时间复杂度是O(n*log2n),和冒泡排序一样是不稳定排序
标签:冒泡 第一个 ++ 相同 数组元素 有序 相对 round 基本
原文地址:https://www.cnblogs.com/sunny666/p/10768184.html