def quick_sort(array, left, right):
if left < right: # the if is necessary. only when left < right, the recursion can be handled
i = left
j = right
tem = array[left]
while i < j:
while i < j and array[j] > tem:
j -= 1
if i < j:
array[i] = array[j]
i += 1
while i < j and array[i] < tem:
i += 1
if i < j:
array[j] = array[i]
j -= 1
array[i] = tem
quick_sort(array, left, i-1) # to improve the performance, when the len(array) is small
quick_sort(array, i+1, right) # we can use insert_sort to handle the sort function
if __name__ == '__main__':
array = [19, 3, 6, 99, 80, 39, 4, 2, 27, 50, 75, 201, 98, 28, 91]
quick_sort(array, 0, len(array)-1)
print array
递归调用实现快速排序
见http://blog.csdn.net/morewindows/article/details/6684558 查看详细分析快速排序