快排-Go版本

题目描述

给定一个数组,请你编写一个函数,返回该数组排序后的形式。
示例1

输入

复制
[5,2,3,1,4]

返回值

复制
[1,2,3,4,5]
func MySort( arr []int ) []int {
    // write code here
    if len(arr) < 2{
        return arr
    }
    quickSort(arr,0,len(arr)-1)
    return arr
}
func quickSort(arr []int, left , right int) {
    if right <= left {
        return
    }
    l, r := left, right
    povit := arr[left]
    for l < r{
        for arr[r] > povit && l<r{
            r--
        }
        for arr[l] <= povit && l<r {
            l++            
        }
        arr[l],arr[r] = arr[r], arr[l]
    }
    arr[l], arr[left] = arr[left], arr[l]
    quickSort(arr, left,l-1)
    quickSort(arr,l+1,right)
}

  

原文地址:https://www.cnblogs.com/lvpengbo/p/14449866.html