要獲得在堆排序陣列中的節點的父,計算將是(指數 - 1)/ 2。堆排序獲取父
然而,假定每一個節點在陣列中佔用4個空格。要訪問記錄/節點,我必須訪問該記錄中四個記錄的第一個位置。所以這裏有一個例子:
如果父母從第4位開始,則左邊的孩子從第12位開始,右邊的孩子從第16位開始。獲得左邊孩子的公式爲2*position + 4
,方程式爲右邊孩子將是2*position + 8
。
什麼是方程是獲得父母?我需要一個等式來獲得左側孩子或右側孩子的父母,與index-1/2
一樣。這可能嗎?如果我需要兩個獨立的等式,那麼這是行不通的,因爲我不知道一個記錄是左邊還是右邊的孩子。
謝謝
企業風險管理的方式,爲什麼會一個節點需要4空間?它需要一個。 –
因爲這就是我想要的..我正在做一個堆排序的修改版本,你不必擔心它的細節。 – darksky
但你要求的細節幫助;-) – phkahler