快速排序的思想就是分治,如上图所示:递归的进行。下面为python实现代码:
left为左起点,right为右起点,temp存放基准数
def func(left,right):
if(left>right):
return
temp = a[left]
i = left
j = right
while(i!=j):
while(a[j]>=temp and i<j):
j-=1
while(a[i]<=temp and i<j):
i+=1
if(i<j):
t = a[i]
a[i]=a[j]
a[j]=t
a[left] = a[i]
a[i] = temp
func(left,i-1)
func(i+1,right)
a = [6,2,3,6,2,4,7]
func(0,6)