分類: 資料結構 演算法相關
2009-10-15 12:26
2289人閱讀收藏
舉報汗,別人都說大小頂堆只是改改大於號的問題,可我的**從大頂堆只改動大於號調整為小頂堆竟然越界樂,掣肘!!
後來幾經更改才發現是傳參的問題(見**),看來大頂堆改小頂堆不是¥%…#¥…,亦或是我rp出點問題???搞笑的是**磚頭(c::b)竟然對越界錯各種容忍,於是乎平常盡量少用,孰不知越界問題很嚴重。。放碼子:
[cpp]view plain
copy
#include//大頂堆
using
namespace
std;
void
heap(
int*p_a,
inthead,
inttail)
//調整成為乙個大頂堆
p_a[head]=tmp;//將根節點放置到最後空出的合適的位置
}
void
h_sort(
int*pz,
intlen)
}
int
main()
************************小頂堆**********
#include
using
namespace
std;
void
heap(
int*p_a,
inthead,
inttail)
//調整成為乙個小頂堆
p_a[head]=tmp;//將根節點放置到最後空出的合適的位置
}
void
h_sort(
int*pz,
intlen)
}
int
main()
大頂堆小頂堆
堆通常是乙個可以被看做一棵完全二叉樹的陣列物件 如果對一棵有n個結點的完全二叉樹的結點按層序編號 從第1層到第 1層,每層從左到右 則對任一結點i 1 i n 有 1 如果i 1,則結點i無雙親,是二叉樹的根 如果i 1,則其雙親是結點。2 如果2i n,則結點i為葉子結點,無左孩子 否則,其左孩子...
Java 堆排序 大頂堆 小頂堆
引用 堆排序 heapsort 是指利用堆這種資料結構所設計的一種排序演算法。堆積是乙個近似完全二叉樹的結構,並同時滿足堆積的性質 即子結點的鍵值或索引總是小於 或者大於 它的父節點。堆排序的平均時間複雜度為 nlogn 演算法步驟 1.建立乙個堆h 0.n 1 2.把堆首 最大值 和堆尾互換 3....
小頂堆及大頂堆的建立
首先明確堆是乙個完全二叉樹,小頂堆指根結點的值小於或等於左右子節點的值,大頂堆指根結點的值都大於或等於左右子節點的值 關於大小頂堆的建立更詳細的介紹 include include include include include include include include using names...