快速排序

func sortArray(nums []int) []int {
   return qsort(nums,0,len(nums)-1)
}

func qsort(nums []int,left int,right int) []int{
    if left < right{
        mid :=  partition(nums,left,right)
        qsort(nums,left,mid-1)
        qsort(nums,mid+1,right)
    }
    return nums
}


func partition(arr []int,left int,right int) int{
    l := left
    r := right
    tmp := arr[left]
    for l < r{
        for l < r && arr[r] >= tmp {
            r--
        }
        arr[l] = arr[r]
        for l< r && arr[l]<=tmp{
            l++
        }
        arr[r] = arr[l]
    }
    arr[l] = tmp
    return l
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容