基本思想
确定数字序列的基准数,使用两个指针,分别指向一头一尾,分别与基准数进行对比,直到指针相遇,基准数与序列的第一个数交换,然后分而治之,采用递归,进行新一轮比较。
算法
# tinput为数组 def quickSort(self,tinput,left,right): if left>right: return temp = tinput[left] i,j = left,right while i!=j: while tinput[j]>=temp and i<j: j-=1 while tinput[i]<=temp and i<j: i+=1 if i<j: tinput[i],tinput[j] = tinput[j],tinput[i] # 最终将基准数归位 tinput[left] = tinput[i] tinput[i] = temp self.quickSort(tinput,left,i-1) self.quickSort(tinput,i+1,right) return tinput