一,原理
快速排序是基于冒泡排序的基础的一种效率较高的一个排序方法。排序的思想是:在所给的数组中选择一个参照数(一般是选取左边第一个为参照数),然后把数组中小与参照数的放左边,大于参照数的放右边。然后对参照数左边的数组和右边的数组继续这样的照做,直到数组有序。
二:代码
#归位 def Partition(li,start,end): tmp=li[start]#定义左边的第一项位参照项 while start < end: while start < end and li[end] >= tmp:#从右边开始寻找 end-=1#向左找 li[start]=li[end]#比tmp小的数放到左边 while start < end and li[start] <= tmp:#从左边开始找 start+=1#向右找 li[end]=li[start]#比tmp大的数放到右边 li[start]=tmp return start #快速排序 def quick_sort(li,start,end): if start < end: mid=Partition(li,start,end)#获取数组的参照之索引 quick_sort(li,start,mid-1)#对参照值左边进行快速排序 quick_sort(li,mid+1,end)#对参照值右边进行快速排序
三:执行
li=[6,3,4,8,9,7,1,2,5] quick_sort(li,0,len(li)-1) print(li)
结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]