//快速排序
//(1) 选择基准值。
//(2) 将数组分成两个子数组:小于基准值的元素和大于基准值的元素。
//(3) 对这两个子数组进行快速排序
func QuickSort(array []int64) []int64 {
if len(array) < 2{
return array
}
base := array[0]
ltArray := make([]int64, 0)
gtArray := make([]int64, 0)
for _, a := range array[1:]{
if a <= base{
ltArray = append(ltArray, a)
}else {
gtArray = append(gtArray, a)
}
}
lt := QuickSort(ltArray)
gt := QuickSort(gtArray)
lt = append(lt, base)
for _,v := range gt{
lt = append(lt, v)
}
return lt
}