快速排序
快速排序是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数都比另外一部分的所有数都要小,然后再按这个方法对这两部分数据分别进行排序。这里初始化i=-1,p=0,r=7,j从0至7,这里有一个循环过程,就是拿序列里面的六个元素与第六个元素(基准元素)进行比较,如果元素小于基准元素,i+=1,交换list[i]和list[j]的顺序,当j=0时,就是list[0]与list[0]置换,这里不变,但是第一个子空间已经增大了一个元素,list[0]<=list[r];当j=1时,list[1]>=list[r],这时不交换任何位置,但第二个子空间会随着j的增大而增加一个元素,这时的第三个子空间已经减少了两个元素了。依次的当j=6时,list[6]>=list[r],不交换任何位置,而第三个子空间已经没有任何元素了。
def quicksort(list,p,r):
if p<r:
q=partion(list,p,r)
quicksort(list,p,q)
quicksort(list,q