def quick_sort(s):
def _partation(low, high):
tmp = s[low]
j = low
i = low + 1
while i <= high:
if s[i] < tmp:
j += 1
s[i], s[j] = s[j], s[i]
i += 1
s[low], s[j] = s[j], s[low]
return j
n = len(s)
part = [[0, n-1]]
for value in part: # 如果数据量大可以用while part: value= part.pop(0) 不停的删除
point = _partation(value[0], value[1])
if point-1 > value[0]:
part.append([value[0], point - 1])
if value[1] > point+1:
part.append([point+1, value[1]])
return s
s = [2, 4, 6, 3, 1, 5, 3, 7, 9, 8]
print(quick_sort(s))
[1, 2, 3, 3, 4, 5, 6, 7, 8, 9]