分享
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
```go
package main
import (
"fmt"
)
func main() {
array2 := []int{3, 2, 1}
heapsort(array2)
fmt.Println("HeapMY", array2)
}
func heapsort(array []int) {
ep := (len(array) - 1) >> 1
fmt.Println(ep)
for i := ep; i >= 0; i-- {
heapt(array, i, len(array)-1)
}
for i := len(array) - 1; i > 0; i-- {
array[0], array[i] = array[i], array[0]
heapt(array, 0, i-1)
}
}
func heapt(array []int, start int, end int) {
le := start*2 + 1
re := le + 1
if le > end {
return
}
var tmp = le
if re <= end && array[re] > array[le] {
tmp = re
}
if array[tmp] > array[start] {
fmt.Println(start, end, array)
array[start], array[tmp] = array[tmp], array[start]
heapt(array, tmp, end)
}
}
```
堆排序
有疑问加站长微信联系(非本文作者))
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1613 次点击
1 回复 | 直到 2018年01月07日 23:14:40
暂无回复
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传