排序是必须掌握的基本算法,在面试题也经常考到,这里写一下python的几种常用排序的写法。
快速排序
写法一
def quickSort(array,l,r):
if l<r:
q = partition(array,l,r)
quickSort(array,l,q-1)
quickSort(array,q+1,r)
def partition(array,l,r):
x = array[r] #选最后一位作为分割点,大于它的放到右边,小于它的放到左边,快排基本思想
i = l-1
for j in range(l,r):
if array[j]<=x:
i+=1
array[i],array[j] = array[j],array[i]
array[i+1],array[r] = array[r],array[i+1] #把小于r的数字全部找出来后,数组中有i+1个小于或等于r,array[i+1]大于r,因此把r和i+1交换,大的放后面
return i+1
写法二