六年后端经验,目前二线城市找机会回一线。
PS:事后我冷静下来,回忆思路大概花了 10+分钟,然后整个 coding 过程也就 15+分钟吧。
func QuickSort(arr []int) {
if len(arr) == 0 {
return
}
fmt.Println(arr)
pv := 0
pl := 1
pr := len(arr) - 1
for pl <= pr {
if pv < pl {
// -- 右边
for arr[pv] < arr[pr] {
pr -= 1
}
arr[pv], arr[pr] = arr[pr], arr[pv]
pv = pr
pr -= 1
// fmt.Println(arr, pl, pr, pv)
} else if pv > pr {
// -- 左边
for arr[pv] > arr[pl] {
pl += 1
}
arr[pv], arr[pl] = arr[pl], arr[pv]
pv = pl
pl += 1
// fmt.Println(arr, pl, pr, pv)
}
}
QuickSort(arr[:pv])
QuickSort(arr[pv+1:])
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.