0x01 描述
通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小露该,然后再按此方法對這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序菇晃,整個(gè)排序過程可以遞歸進(jìn)行男图,以此達(dá)到整個(gè)數(shù)據(jù)變成有序序列。
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)