堆排(大頂堆,小頂堆)

2021-06-03 22:52:09 字數 1429 閱讀 2662

分類: 資料結構 演算法相關

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...