美文网首页
快速排序

快速排序

作者: Ucan先生 | 来源:发表于2020-09-14 15:46 被阅读0次
    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
    }
    

    相关文章

      网友评论

          本文标题:快速排序

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