快排,取一个key值,一般取第一个即可,将小于key的放到左边,大于key的放到右边,递归实现
import random
def quicksort(data, low = 0, high = None):
if high == None:
high = len(data) - 1
if low < high:
s, i, j = data[low], low, high
while i < j:
while i < j and data[j] >= s:
j = j - 1
if i < j:
data[i] = data[j]
i = i + 1
while i < j and data[i] <= s:
i = i + 1
if i < j:
data[j] = data[i]
j = j - 1
data[i] = s
quicksort(data, low, i - 1)
quicksort(data, i + 1, high) data=[random.randint(1,100) for i in range(100)]
print(data)
quicksort(data)
print(data)