好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Python小程序——快排算法

  1   def   Partition(list,p,q):
   2       #  这里是用来分块的算法。 
  3      x =  list[p]
   4      i =  p
   5       for  j  in  range(p+1,q+1):  #  注意range是顾前不顾后的,所以后面的区间值要大一位 
  6           if  list[j]< x:
   7              i+=1
  8              list[i],list[j] =  list[j],list[i]
   9  
 10      list[p], list[i] =  list[i], list[p]
  11       return   i
  12  
 13  
 14   def   Quicksort(List,left,right):
  15       if  left< right:
  16          r =  Partition(List,left,right)
  17          Quicksort(List,left,r-1 )
  18          Quicksort(List,r+1 ,right)
  19  
 20  
 21   def   main(Out_list):
  22       #  外部接口 
 23      Out_list_left = 0
  24      Out_list_right = len(Out_list)-1
 25       Quicksort(Out_list,Out_list_left,Out_list_right)
  26       return   Out_list
  27  
 28   if   __name__  == "  __main__  "  :
  29      A = [32,34,21,45,666,213,41,23,78,64,36,83,18,41,332,6466,432 ]
  30      A_left =  0
  31      A_right = len(A)-1
 32       print  (A_right)
  33       Quicksort(A,A_left,A_right)
  34       print (A)

非常简单的算法。

查看更多关于Python小程序——快排算法的详细内容...

  阅读:52次