[問題] 如何做出標準的 堆積樹 ?

作者: 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