- 博客(2)
- 收藏
- 关注
翻译 myheap2
//大根堆,根结点为0,左子节点角标为2*k+1,右子节点角标为2*k+2,父节点角标为(k-1)/2package mainimport "fmt"func HeapSort(s []int) { N := len(s)-1 for k := (N-1) / 2; k >= 0; k-- { sink(s, k, N) } //下沉排序输出 for N > 0 { swap(s, 0, N) //将大的放在数组
2020-09-10 15:12:57 80
原创 go语言堆排序1
go 语言笔记heap:// 最小/大堆排序,以及入堆出堆与删除 //删除空白行:^[ \t]*\n//根结点为0,左子节点角标为2*k+1,右子节点角标为2*k+2,父节点角标为(k-1)/2//如果只需要排序输出的话,只需要down()和Pop即可// 最大堆只需要修改less函数即可//主要堆的method包括: 入堆Push()、出堆Pop()、向上搜索定位的up()、向下搜索定位的down()、删除元素的Remove()//主要函数:方便大小堆转换的less()、和两值交
2020-09-10 14:38:10 126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人