亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? heapsort.cpp

?? 堆排序
?? CPP
字號:
/* *	堆排序2007-04-17 14:17堆排序(Heap Sort) * * *	1.	基本思想: *			堆排序是一樹形選擇排序,在排序過程中,將R[1..N]看成是一顆完全二叉樹的順序存儲結構 *			利用完全二叉樹中雙親結點和孩子結點之間的內在關系來選擇最小的元素。 * * *	2.	堆的定義: N個元素的序列K1,K2,K3,...,Kn.稱為堆,當且僅當該序列滿足特性: *			Ki≤K2i * *			Ki ≤K2i+1(1≤ I≤ [N/2]) * *		堆實質上是滿足如下性質的完全二叉樹: *			樹中任一非葉子結點的關鍵字均大于等于其孩子結點的關鍵字。 *			例如序列10,15,56,25,30,70就是一個堆。這種堆中根結點(稱為堆頂)的關鍵字最小,我們把它稱為小根堆。 *			反之,若完全二叉樹中任一非葉子結點的關鍵字均大于等于其孩子的關鍵字,則稱之為大根堆。 * * *	3.	排序過程: *			堆排序正是利用小根堆(或大根堆)來選取當前無序區中關鍵字小(或最大)的記錄實現排序的。 *			我們不妨利用大根堆來排序。 *			每一趟排序的基本操作是: *				將當前無序區調整為一個大根堆,選取關鍵字最大的堆頂記錄,將它和無序區中的最后一個記錄交換。 *				這樣,正好和直接選擇排序相反,有序區是在原記錄區的尾部形成并逐步向前擴大到整個記錄區。 * * *	用大根堆排序的基本思想 *		① 先將初始文件R[1..n]建成一個大根堆,此堆為初始的無序區 *		② 再將關鍵字最大的記錄R[1](即堆頂)和無序區的最后一個記錄R[n]交換, *			由此得到新的無序區R[1..n-1]和有序區R[n],且滿足R[1..n-1].keys≤R[n].key *		③ 由于交換后新的根R[1]可能違反堆性質,故應將當前無序區R[1..n-1]調整為堆。 *			然后再次將R[1..n-1]中關鍵字最大的記錄R[1]和該區間的最后一個記錄R[n-1]交換, *			由此得到新的無序區R[1..n-2]和有序區R[n-1..n], *			且仍滿足關系R[1..n-2].keys≤R[n-1..n].keys,同樣要將R[1..n-2]調整為堆。 *			...... *			直到無序區只有一個元素為止。 * *		① Heapify函數思想方法 *			每趟排序開始前R[l..i]是以R[1]為根的堆,在R[1]與R[i]交換后, *			新的無序區R[1..i-1]中只有R[1]的值發生了變化,故除R[1]可能違反堆性質外, *			其余任何結點為根的子樹均是堆。因此,當被調整區間是R[low..high]時,只須調整以R[low]為根的樹即可。 *		"篩選法"調整堆 *			R[low]的左、右子樹(若存在)均已是堆,這兩棵子樹的根R[2low]和R[2low+1]分別是各自子樹中關鍵字最大的結點。 *			若R[low].key不小于這兩個孩子結點的關鍵字,則R[low]未違反堆性質,以R[low]為根的樹已是堆,無須調整; *			否則必須將R[low]和它的兩個孩子結點中關鍵字較大者進行交換, *			即R[low]與R[large](R[large].key=max(R[2low].key,R[2low+1].key))交換。 *			交換后又可能使結點R[large]違反堆性質,同樣由于該絒large]為根的樹進行調整。 *			此過程直至當前被調整的結點已滿足堆性質,或者該結點已是葉子為止。 *			上述過程就象過篩子一樣,把較小的關鍵字逐層篩下去,而將較大的關鍵字逐層選上來。 *			因此,有人將此方法稱為"篩選法"。 */ #include <math.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <time.h>#include <sys/time.h>#define MAXSIZE 1000000 //排序表的最大容量typedef struct		//定義排序表的結構{	int elemword[MAXSIZE+1];		//數據元素關鍵字	int length;					//表中當前元素的個數}SqList;void InitialSqList(SqList&);		//初始化排序表void HeapSort(SqList &);			//堆排序void HeapAdjust(SqList &,int,int);	//堆調整void PrintSqList(SqList);			//顯示表中的所有元素int main(void){	struct timeval time_point;	SqList L;			//聲明表L		InitialSqList(L);	//待排序列初始化	gettimeofday( &time_point, NULL );	printf( "\n開始 秒:%d 微妙: %d\n", time_point.tv_sec, time_point.tv_usec );	HeapSort(L);		//堆排序	gettimeofday( &time_point, NULL );	printf( "結束 秒:%d 微妙: %d\n", time_point.tv_sec, time_point.tv_usec );	PrintSqList(L);		//顯示排序結果	return( 0 );}void InitialSqList( SqList &L ){	FILE	*fp = NULL;	char	indata[32];	if( (fp=fopen("indata","r")) == NULL )	{		fprintf( stderr, "fopen() error. strerror(errno)=%s\n", strerror(errno) );		exit( -1 );	}	memset( &L, 0, sizeof(SqList) );	memset( indata, 0, sizeof(indata) );	while( fgets( indata, sizeof(indata), fp ) != NULL )	{		if( indata[strlen(indata)-1] == '\n' )			indata[strlen(indata)-1] = '\0';		L.length++;		L.elemword[L.length] = atoi( indata );		memset( indata, 0, sizeof(indata) );	}	fclose( fp );}void HeapSort(SqList &L){	//對順序表L做堆排序	int i,j,t;	for( i=L.length/2; i>0; --i )		//把L.elemword[1..L.length]建成大頂堆		HeapAdjust( L, i, L.length );	for( i=L.length; i>1; --i )	{		t = L.elemword[1];				//將堆頂記錄和當前未經排序子序列L.elemword[1..i]		L.elemword[1] = L.elemword[i];	//中的最后一個記錄相互交換		L.elemword[i] = t;		HeapAdjust( L, 1, i-1 );		//將L.r[1..i-1]重新調整為大頂堆	}}void HeapAdjust(SqList &H,int s,int m){	//已知H.elemword[s..m]中除H.elemword[s]之外均滿足堆的定義,本函數調整H.elemword[s]	//使H.elemword[s..m]成為一個大頂堆	int j,rc;	rc=H.elemword[s];	for(j=2*s;j<=m;j*=2)	//沿關鍵字較大的結點向下篩選	{		if(j<m&&H.elemword[j]<H.elemword[j+1]) ++j; //j為關鍵字較大的記錄的下標		if(rc>=H.elemword[j]) break; //rc應插入在位置s上		H.elemword[s]=H.elemword[j];		s=j;	}	H.elemword[s]=rc;	//插入}void PrintSqList( SqList L ){		//顯示表中所有元素	FILE *fp = NULL;	if( (fp=fopen("outdata","w")) == NULL )	{		fprintf( stderr, "fopen() error. strerror(errno)=%s\n", strerror(errno) );		exit( -1 );	}	for( int i=1; i<=L.length; i++ )		fprintf( fp, "%d\n", L.elemword[i] );	fclose( fp );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色域天天综合网| 国产99久久久久| 亚洲黄色在线视频| 国产精品久久网站| 国产精品看片你懂得| 国产人久久人人人人爽| 久久久久国产精品人| 国产午夜亚洲精品理论片色戒| 欧美一级欧美三级在线观看| 在线综合视频播放| 日韩欧美成人激情| 精品成a人在线观看| 久久久国产午夜精品| 国产欧美一区二区三区网站| 国产精品无圣光一区二区| 国产精品久久毛片| 亚洲一区免费视频| 日韩精品久久久久久| 免费高清在线一区| 国产综合久久久久影院| 国产福利精品一区| 色妹子一区二区| 日韩写真欧美这视频| 日韩一区二区麻豆国产| www国产精品av| 亚洲欧洲一区二区在线播放| 一区二区三区四区高清精品免费观看| 亚州成人在线电影| 九九精品视频在线看| 成人免费视频视频在线观看免费| 色综合久久中文字幕| 欧美一区二区三区在线观看| 精品国产乱码久久久久久牛牛| 国产亚洲一区二区在线观看| 最新成人av在线| 蜜臀久久99精品久久久画质超高清| 国内久久精品视频| 欧美亚洲一区二区三区四区| 91麻豆精品国产91久久久久久| 久久亚区不卡日本| 亚洲国产精品久久久久婷婷884| 奇米一区二区三区| 91美女视频网站| 久久综合九色综合欧美就去吻 | 亚洲免费av网站| 蜜桃av一区二区在线观看| av亚洲精华国产精华精华| 欧美另类高清zo欧美| 国产精品每日更新在线播放网址| 丝袜a∨在线一区二区三区不卡| 国产麻豆午夜三级精品| 欧美三日本三级三级在线播放| 久久久蜜臀国产一区二区| 亚洲一区二区四区蜜桃| 成人免费av网站| 日韩久久久精品| 亚洲成a人片在线不卡一二三区| 国产大陆精品国产| 欧美va亚洲va| 男男gaygay亚洲| 欧美吻胸吃奶大尺度电影| 日本一区二区成人在线| 蜜臀av性久久久久av蜜臀妖精| 日本韩国欧美国产| 国产精品污www在线观看| 国产一区二区三区观看| 在线电影欧美成精品| 亚洲一区二区av在线| 色丁香久综合在线久综合在线观看| 久久这里只有精品视频网| 日本aⅴ精品一区二区三区 | 国内精品伊人久久久久av一坑| 色妹子一区二区| 亚洲欧洲日产国码二区| 国产成人综合亚洲网站| 久久久久久99精品| 国产乱码精品一区二区三区忘忧草| 91精品国产综合久久精品图片| 亚洲va在线va天堂| 欧美中文字幕不卡| 亚洲一区二区三区视频在线播放| 91麻豆精品视频| 亚洲女性喷水在线观看一区| 99riav一区二区三区| ...av二区三区久久精品| 91啪在线观看| 一区二区成人在线观看| 欧美性xxxxxx少妇| 亚洲国产一区二区视频| 6080日韩午夜伦伦午夜伦| 亚洲高清视频在线| 69av一区二区三区| 久久99精品国产麻豆婷婷洗澡| 久久免费美女视频| 岛国一区二区在线观看| 亚洲欧美一区二区三区孕妇| 色一情一乱一乱一91av| 图片区日韩欧美亚洲| 精品美女一区二区| 91色九色蝌蚪| 亚洲丶国产丶欧美一区二区三区| 在线观看91精品国产麻豆| 黑人精品欧美一区二区蜜桃 | 国产午夜亚洲精品理论片色戒 | 91亚洲精品久久久蜜桃| 亚洲伊人色欲综合网| 国产亚洲福利社区一区| 国产成人a级片| 亚洲激情综合网| 欧美绝品在线观看成人午夜影视| 久久超碰97中文字幕| 国产精品美女一区二区三区| 在线一区二区观看| 国产伦精一区二区三区| 一区二区三区日韩精品| 欧美一区二区三区在| 成人a免费在线看| 青青草原综合久久大伊人精品| 中文字幕精品综合| 欧美福利电影网| 成人黄色国产精品网站大全在线免费观看 | 色噜噜狠狠成人网p站| 蜜臀久久99精品久久久画质超高清 | 亚洲成av人片| 国产精品嫩草影院com| 91精品欧美福利在线观看| 91在线云播放| 国产一区二区三区免费| 日韩av不卡在线观看| 综合亚洲深深色噜噜狠狠网站| 日韩欧美国产一区二区在线播放| 91福利国产精品| 成人免费看片app下载| 美国毛片一区二区| 偷窥国产亚洲免费视频 | 色成年激情久久综合| 国产 欧美在线| 韩国av一区二区| 秋霞午夜av一区二区三区| 亚洲精品视频免费看| 国产精品不卡一区二区三区| 精品粉嫩超白一线天av| 日韩欧美成人午夜| 精品成人a区在线观看| 91麻豆精品国产91久久久资源速度 | 日韩欧美色综合网站| 欧美色视频在线| 91福利小视频| 欧美日韩免费一区二区三区| 色就色 综合激情| 91福利资源站| 欧美日韩国产高清一区| 欧美日韩一区二区三区免费看 | 美腿丝袜一区二区三区| 亚洲成av人片在线观看| 亚洲综合激情网| 亚洲国产精品一区二区久久恐怖片| 亚洲视频免费看| 亚洲精品高清视频在线观看| 亚洲人成小说网站色在线| 亚洲图片激情小说| 亚洲一区二区三区在线播放| 亚洲理论在线观看| 亚洲成人av电影在线| 丝袜美腿亚洲色图| 久久99精品国产.久久久久久 | 亚洲国产精品激情在线观看| 国产日韩欧美高清在线| 国产精品视频看| 亚洲少妇30p| 三级一区在线视频先锋| 久久国产精品99久久久久久老狼| 久久成人免费网| 懂色av一区二区夜夜嗨| 成人免费看的视频| 欧美吻胸吃奶大尺度电影| 欧美一区二区播放| 久久久久国产成人精品亚洲午夜| 国产精品天干天干在观线| 六月丁香婷婷色狠狠久久| 国产综合久久久久久久久久久久 | 97精品久久久久中文字幕| 欧洲亚洲精品在线| 欧美一区三区二区| 国产精品国产精品国产专区不蜜 | 久久成人18免费观看| 国产成人精品影视| 欧美日韩一区二区欧美激情| 亚洲精品在线观看视频| 欧美国产日产图区| 午夜一区二区三区视频| 国产成人综合亚洲91猫咪| 欧美在线视频全部完| 亚洲精品在线三区| 一区二区三区四区蜜桃 | 99精品久久只有精品| 欧美剧情片在线观看| 成人免费一区二区三区在线观看| 偷偷要91色婷婷| 色婷婷亚洲精品|