五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

堆排序-小根堆

2023-01-12 16:01 作者:就叫大嘴吧  | 我要投稿


#include<stdio.h>
#include<stdlib.h>

using namespace std;

void swap(int &a, int &b){
	int temp = a;
	a = b;
	b = temp;
} 

// end:元素個(gè)數(shù) 
void HeapAdjust(int r[], int k, int end){
	int i = k; // 根節(jié)點(diǎn) 
	int j = 2 * k; // 左孩子節(jié)點(diǎn) 
	while(j <= end){
		// j < end:當(dāng)前該節(jié)點(diǎn) 有右孩子
		// r[j] > r[j + 1]:左子樹(shù)值 > 右子樹(shù)值 
		if(j < end && r[j] > r[j + 1]){
			// j 指向 左右子樹(shù)值較小者:右子樹(shù) 
			j++; 
		}
		// 根結(jié)點(diǎn)值 > 孩子結(jié)點(diǎn)值 
		if(r[i] > r[j]){
			swap(r[i], r[j]);
		}
		// 向下進(jìn)行調(diào)整 
		i = j;
		j = 2 * i;
	}
}

void HeapSort(int a[], int n){
	int k;
	// 建立 大根堆 
	for(k = n / 2; k >= 1; k--){
		HeapAdjust(a, k, n);
	}
	// 調(diào)整 (向下調(diào)整) 
	for(k = 1; k < n; k++){
		// 將 當(dāng)前的堆頂 與 當(dāng)前無(wú)序區(qū)的最后一個(gè) 進(jìn)行交換 
		swap(a[1], a[n - k + 1]);
		
		// 1:需要調(diào)整的根結(jié)點(diǎn)
		// n - k:需要調(diào)整的元素個(gè)數(shù) 	
		HeapAdjust(a, 1, n - k);
	}
} 

int main(){
	// a[0] 未使用 
	int a[7] = {0, 28, 25, 16, 36, 18, 32};
	
	for(int i = 1; i < 7; i++){
		printf("%d	", a[i]);
	}
	printf("\n");
	
	HeapSort(a, 6);
	
	for(int i = 1; i < 7; i++){
		printf("%d	", a[i]);
	}
	
	return 0;
}


堆排序-小根堆的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
西藏| 新闻| 翁牛特旗| 大兴区| 安福县| 达日县| 灵丘县| 金寨县| 达日县| 手机| 乌拉特中旗| 马鞍山市| 宝丰县| 全南县| 赤峰市| 南开区| 荃湾区| 通河县| 宿迁市| 铅山县| 巨鹿县| 奉节县| 江津市| 万盛区| 伊宁市| 余江县| 揭阳市| 大田县| 天津市| 永安市| 易门县| 炎陵县| 石泉县| 互助| 隆尧县| 北宁市| 资溪县| 朝阳区| 丰城市| 英吉沙县| 黑龙江省|