快速排序

 一、快排算法 
    快速排序,是一个基于递归的算法,其核心思想如下:对于列表,选取一个轴值(一般选取最后一个元素),把列表中,小于该轴值的排在左边,大于该轴值的排在右边,这样,轴值在列表中的位置就确定了。由此衍生出了轴值的左子列表,以及右子列表,递归的对于左子列表以及右子列表使用上述的排序算法,直到子列表中只有一个元素。
代码实现:
def qSort(lista, sIndex, eIndex):
if sIndex >= eIndex:
return
flag = lista[eIndex]
i=sIndex
for j in range(sIndex,eIndex):
if lista[j] > flag:
pass
else:
lista[i], lista[j] = lista[j], lista[i]
i+=1
lista[eIndex], lista[i] = lista[i], lista[eIndex]
middle = i
qSort(lista, sIndex, middle-1)
qSort(lista, middle+1, eIndex)
print lista

if __name__ == '__main__':
x=[343,3454,4,5,7]
qSort(x, 0, len(x)-1)

二、时间复杂度
O(nlogn)

原文地址:https://www.cnblogs.com/emily-qin/p/7170696.html