介绍
- 快速排序,简称"快排"(是最快的排序算法’是平均情况下’。在平均情况下运行n个项目O(n log n)(大O符号)
原理
步骤
- 从数列中挑出一个项目称其为"基准"
- 重新排列数列,所有比基准小的项目摆在基准值前面;所有比基准值大的项目摆在基准值后面(相同的数可以摆在任何一边)'这种操作称为分区,这个分区执行完后这个基准值就会在数列的中心。
- 使用递归去执行前面的内容,直达数列的大小是一或者零.
代码
def quick_sort(ser):
if len(ser) < 2:
return
p = ser[0]
L = []
E = []
R = []
while len(ser) > 0:
if ser[-1] < p:
L.append(ser.pop())
elif ser[-1] == p:
E.append(ser.pop())
else:
R.append(ser.pop())
quick_sort(L)
quick_sort(R)
ser.extend(L)
ser.extend(E)
ser.extend(R)
if __name__ == '__main__':
s = [1, 7, 3, 5, 4]
quick_sort(ser)
print(ser)
小结