基本思想

确定数字序列的基准数,使用两个指针,分别指向一头一尾,分别与基准数进行对比,直到指针相遇,基准数与序列的第一个数交换,然后分而治之,采用递归,进行新一轮比较。

算法

    # 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