[问题] 如何做出标准的 堆积树 ?

楼主: wa007123456 (大笨羊)   2016-11-18 10:00:07
开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
VC++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
小弟想写一个堆积树...可是我觉得我的方法好像很拙劣
因为仔细看了一下 发现好像是写成了 选择排序 =.= O(n^2)
产生的有点慢
以下是小弟的程式码:
void myHeap(int data[], int size) {
int point_Top = 0;
int nav_pointer;
while (point_Top < size) {
for (nav_pointer =point_Top+1; nav_pointer < size; nav_pointer++) {
if (data[point_Top] < data[nav_pointer]) {
swap(&data[point_Top], &data[nav_pointer]);
}
}
point_Top++;
}
}
作者: steve1012 (steve)   2016-11-18 22:04:00
...heap =\= heap sort书上用的是用array 存一个tree 你先研究一下怎么用array存binary tree
作者: firejox (Tangent)   2016-11-19 12:41:00
先拿一张纸和一只笔画一个binary complete tree 然后从顶点开始依序往下编号 去观察编号间的关系
楼主: wa007123456 (大笨羊)   2016-11-20 19:27:00
好的 谢谢大家
作者: Deltak (蓝田五十弦)   2016-11-21 23:59:00
关键在父子的index

Links booklink

Contact Us: admin [ a t ] ucptt.com