快速排序

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
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。