新聞中心
void AdjustHeap(int *a, int size,int root)//建最大堆
創(chuàng)新互聯(lián)公司一直通過網(wǎng)站建設(shè)和網(wǎng)站營(yíng)銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、移動(dòng)互聯(lián)產(chǎn)品、成都全網(wǎng)營(yíng)銷推廣服務(wù)為核心業(yè)務(wù)。10年網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡(jiǎn)單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。
{
if (a == NULL )
{
return;
}
int child = root*2+1;
while (child { if ((child + 1) < size && a[child] < a[child + 1]) { ++child; } if (a[root] { swap(a[child], a[root]); } root = child; child = root * 2 + 1; } } void Adjustdown(int *a, int size, int root)//向下調(diào)整,將堆頂?shù)臄?shù)據(jù)換到堆底后把長(zhǎng)度減一; { //再將堆頂數(shù)據(jù)向下比較,建成最大堆 int child = root * 2 + 1; while (child < size) { if ((child + 1) < size && a[child] < a[child + 1]) { ++child; } if (a[child] > a[root]) { swap(a[child], a[root]); } root = child; child = root * 2 + 1; } } void HeapSort(int *a,int length) { if (a == NULL || length <= 0) { return; } for (int i = (length - 2) / 2; i >= 0; i--) { AdjustHeap(a, length, i); } for (int i = length - 1; i > 0; i--) { int tmp = a[0]; a[0] = a[i]; a[i] = tmp; Adjustdown(a, i, 0); } }
當(dāng)前名稱:堆排序的基本實(shí)現(xiàn)
文章源于:http://www.dlmjj.cn/article/gihhhg.html