0x01 描述
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
0x02 python代码
#!/usr/bin/env python2
#-*- coding:utf-8 -*-
import random
def quickSort(lists, left, right):
if left >= right:
return lists
key = lists[left]
low = left
high = right
while left < right:
while left < right and lists[right] >= key:
right -= 1
lists[left] = lists[right]
while left < right and lists[left] <= key:
left += 1
lists[right] = lists[left]
lists[right] = key
quickSort(lists, low, left - 1)
quickSort(lists, left + 1, high)
return lists
if __name__ == '__main__':
num_list = [random.randint(0, 1000) for i in range(10000)]
num_list = quickSort(num_list, 0, len(num_list) - 1)
print(num_list)