菜鳥算法
快速排序
func QuickSorter(array *[]int, start int, end int) {
if start > end {
return
}
pivot, head, tail := start, start, end
for head < tail {
// 移動(dòng)尾指針 尋找小于基準(zhǔn)值的數(shù) (這里基準(zhǔn)值選取的是頭部數(shù),所以先移動(dòng)尾指針)
for (*array)[tail] >= (*array)[pivot] && head < tail {
tail--
}
// 移動(dòng)頭指針 尋找大于基準(zhǔn)值的數(shù)
for (*array)[head] <= (*array)[pivot] && head < tail {
head++
}
if head < tail {
(*array)[head], (*array)[tail] = (*array)[tail], (*array)[head]
} else {
// 將基準(zhǔn)值歸位
(*array)[pivot], (*array)[head] = (*array)[head], (*array)[pivot]
}
}
QuickSorter(array, start, head-1)
QuickSorter(array, head+1, end)
}

執(zhí)行結(jié)果