GO语言快速排序

快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
func QuickSort(src []int, first, last int) {
flag := first
left := first
right := last
if first >= last {
return
}
for first < last {
for first < last {
if src[last] >= src[flag] {
last -= 1
continue
} else {
tmp := src[last]
src[last] = src[flag]
src[flag] = tmp
flag = last
break
}
}
for first < last {
if src[first] <= src[flag] {
first += 1
continue
} else {
tmp := src[first]
src[first] = src[flag]
src[flag] = tmp
flag = first
break
}
}
}
QuickSort(src, left, flag-1)
QuickSort(src, flag+1, right)
}
-------------本文结束感谢您的阅读-------------

本文标题:GO语言快速排序

文章作者:Wuman

发布时间:2018年11月07日 - 13:11

最后更新:2018年11月07日 - 13:11

原始链接:http://yoursite.com/2018/11/07/GO语言快速排序/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。