美文网首页
排序算法之快速排序

排序算法之快速排序

作者: wenyilab | 来源:发表于2018-10-10 20:39 被阅读0次

    最好时间复杂度:O(nlogn)
    最坏时间复杂度:O(n^2)

    排序思想:
    每次循环会选择一个key,从数组尾处循环找比key小元素将其放在i位置,从数组头找比key大的位置放在j位置

    def QuickSort(arr,low,high):
        i = low
        j = high
        #循环跳出条件
        if i >= j :
            return arr
        #注意key = arr[i]一定是在跳出条件后面
        key = arr[i]
        #每一次while循环都是把数组分为两部分,左面比key小,右面比key大
        while i < j:
            while i < j and arr[j] >= key:
                j -= 1
            arr[i] = arr[j]
            while i < j and arr[i] <= key:
                i += 1
            arr[i] = key
        QuickSort(arr,low,i - 1)
        QuickSort(arr,j+1,high)
        return arr
    

    相关文章

      网友评论

          本文标题:排序算法之快速排序

          本文链接:https://www.haomeiwen.com/subject/gfmmaftx.html