#快速排序算法,简称快排,是最实用的排序算法,没有之一
一行代码的版本:1
quick_sort = lambda array: array if len(array) <= 1 else quick_sort([item for item in array[1:] if item <= array[0]]) + [array[0]] + quick_sort([item for item in array[1:] if item > array[0]])
正常的快排:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16def quick_sort(array, left, right):
if left >= right:
return
low = left
high = right
key = array[low]
while left < right:
while left < right and array[right] > key:
right -= 1
array[left] = array[right]
while left < right and array[left] <= key:
left += 1
array[right] = array[left]
array[right] = key
quick_sort(array, low, left - 1)
quick_sort(array, left + 1, high)
1 | public static int partition(int []array,int lo,int hi){ |