最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

堆排序(完全二叉樹)最后一個非葉子節(jié)點的序號是n/2-1的原因

2022-11-17 10:42 作者:Rickest-Morty  | 我要投稿

堆排序是基于完全二叉樹實現(xiàn)的,在將一個數(shù)組調(diào)整成一個堆的時候,關(guān)鍵之一的是確定最后一個非葉子節(jié)點的序號,這個序號為n/2-1,n為數(shù)組的長度。但是為什么呢?

可以分兩種情形考慮:

①堆的最后一個非葉子節(jié)點若只有左孩子

②堆的最后一個非葉子節(jié)點有左右兩個孩子

完全二叉樹的性質(zhì)之一是:如果節(jié)點序號為i,在它的左孩子序號為2*i+1,右孩子序號為2*i+2。

?

對于①左孩子的序號為n-1,則n-1=2*i-1,推出i=n/2-1;

?

對于②左孩子的序號為n-2,在n-2=2*i-1,推出i=(n-1)/2-1;右孩子的序號為n-1,則n-1=2*i+2,推出i=(n-1)/2-1;

很顯然,當完全二叉樹最后一個節(jié)點是其父節(jié)點的左孩子時,樹的節(jié)點數(shù)為偶數(shù);當完全二叉樹最后一個節(jié)點是其父節(jié)點的右孩子時,樹的節(jié)點數(shù)為奇數(shù)。

根據(jù)java語法的特征,整數(shù)除不盡時向下取整,則若n為奇數(shù)時(n-1)/2-1=n/2-1。

因此對于②最后一個非葉子節(jié)點的序號也是n/2-1。

得證。

顯然序號是從0開始的。


from:https://www.cnblogs.com/malw/p/10542557.html

堆排序(完全二叉樹)最后一個非葉子節(jié)點的序號是n/2-1的原因的評論 (共 條)

分享到微博請遵守國家法律
建宁县| 绥中县| 临海市| 凤冈县| 灵寿县| 清河县| 晋州市| 大丰市| 安新县| 义乌市| 孝义市| 吐鲁番市| 青海省| 承德市| 浏阳市| 阳朔县| 上饶市| 井陉县| 广丰县| 稻城县| 平邑县| 彰化市| 修武县| 沧州市| 芜湖县| 宜川县| 清丰县| 浦北县| 安多县| 平塘县| 慈溪市| 冕宁县| 饶河县| 平远县| 宁都县| 府谷县| 乌审旗| 靖西县| 平凉市| 盘山县| 临朐县|