# -*- coding: utf-8 -*- #--------------------------------------- # 程序:快速排序 # 版本: # 作者:WuChong # 日期:2014-02-08 # 语言:Python 3.3 # 说明: #--------------------------------------- def quick_sort(ary): return qsort(ary,0,len(ary)-1) def qsort(ary,left,right): #快排函数,ary为待排序数组,left为待排序的左边界,right为右边界 if left >= right : return ary key = ary[left] #取最左边的为基准数 lp = left #左指针 rp = right #右指针 while lp < rp : while ary[rp] >= key and lp < rp : rp -= 1 while ary[lp] <= key and lp < rp : lp += 1 ary[lp],ary[rp] = ary[rp],ary[lp] ary[left],ary[lp] = ary[lp],ary[left] qsort(ary,left,lp-1) qsort(ary,rp+1,right) return ary