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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sort.h

?? 算法分析和設(shè)計(jì)
?? H
字號(hào):
#include <iostream.h>
#include <stdlib.h> //srand(),rand()函數(shù)
#include <stdio.h>
#include <time.h> //time()
//#include <windows.h>  //DWORD,   GetTickCount()

const long NUM=100000;

template <typename T>
class Sort
{
public:
	void BubbleSort(T e[],long n);                  //冒泡排序
	void HeapSort(T e[],long n);					   //堆排序
	void InsertSort(T e[],long n);                  //直接插入排序
	void MergeSort(T e[],long n);                   //歸并排序
	void QuickSort(T A[],long low,long high);        //快速排序
private:
//	T a[NUM];
//	double cpNum,movNum;  //cpNum記錄比較次數(shù),movNum記錄移動(dòng)次數(shù)
};


template <typename T>
void Sort<T>::BubbleSort(T e[],long n)
{
	long lastExchangeIndex;
	T temp;
	long i=n-1;
	double cpNum=0;
	double movNum=0;
	while(i>0)
	{
		lastExchangeIndex=0;
		for(long j=0;j<i;j++)
		{
			cpNum++;
			if(e[j+1]<e[j])
			{
				movNum++;
				temp=e[j];
				e[j]=e[j+1];
				e[j+1]=temp;
				lastExchangeIndex=j;
			}
		}
		i=lastExchangeIndex;
	}
	cout<<"冒泡排序的比較次數(shù):"<<cpNum<<",移動(dòng)次數(shù):"<<movNum<<endl;
}




template <typename T>
void FilterDown(T A[],long i,long n,double &c,double &m)
{
	long current=i;
	long j=2*i+1;
	T temp=A[i];
	while(j<n)
	{
		//非遞減順序排序
		c++;
		if(j<n-1 && A[j]<A[j+1])  //if(j<n-1 && A[j]>A[j+1])非遞增順序
			j++;
		c++;
		if(temp>=A[j])            //(temp<A[j])非遞增順序
			break;
		else
		{
			A[current]=A[j];
			m++;
			current=j;
			j=2*j+1;
		}
	}
	A[current]=temp;
}

template <typename T>
void Sort<T>::HeapSort(T e[],long n)
{
	double cpNum=0;
	double movNum=0;
	T temp;
	for(long i=(n-2)/2;i>=0;i--)
		FilterDown(e,i,n,cpNum,movNum);
	for(long j=n-1;j>=1;j--)
	{
		temp=e[j];
		e[j]=e[0];
		e[0]=temp;
		FilterDown(e,0,j,cpNum,movNum);
	}

	cout<<"堆排序的比較次數(shù)是:"<<cpNum<<",移動(dòng)次數(shù)是:"<<movNum<<endl;
}



template <typename T>
void Sort<T>::InsertSort(T e[],long n)
{
	double cpNum=0,movNum=0;
	T temp;
	for(long i=1;i<n;i++)
	{
		temp=e[i];
		for(long j=i-1;(j>=0) && (temp<e[j]);j--)
		{
			cpNum++;
			e[j+1]=e[j];
			movNum++;
		}
		if(temp>e[j])
			cpNum++;
		e[j+1]=temp;
	}
	cout<<"插入排序的比較次數(shù)是:"<<cpNum<<",移動(dòng)次數(shù)是:"<<movNum<<endl;
}



/*兩個(gè)待歸并的子序列均在數(shù)組A中,其中第一個(gè)子序列的下標(biāo)范圍從l到m,第二個(gè)子序列的下標(biāo)范圍從m+1到n。
  歸并后得到的新的有序序列粗放在另一個(gè)輔助數(shù)組B中,下標(biāo)從l到n。
*/
template <typename T>
void Merge(T A[],T B[],long l,long m,long n)
{
	long i=l;//字母l,指示第一個(gè)序列
	long j=m+1;//j指示第二個(gè)序列
	long k=l;//字母l,指示存放位置
	while(i<=m && j<=n)//當(dāng)兩個(gè)序列都未結(jié)束時(shí)循環(huán)
		if(A[i]<=A[j])
			B[k++]=A[i++];
		else
			B[k++]=A[j++];
	while(i<=m)
		B[k++]=A[i++];
	while(j<=n)
		B[k++]=A[j++];
}

//一趟歸并,將A[0]~A[n-1]中若干個(gè)長(zhǎng)度為k的有序子序列按從前向后的順序兩兩歸并到數(shù)組swap中
template <typename T>
void MergePass(T A[],long n,T swap[],long k)
{
	long l1=0,l2;  //l1,l2分別指示第1和第2個(gè)子序列的下界
	long u1,u2;    //u1,u2分別指示第1和第2個(gè)子序列的上屆
	while(l1+k<=n-1)
	{
		l2=l1+k;
		u1=l2-1;
		u2=(l2+k-1<=n-1)?l2+k-1:n-1;
		Merge(A,swap,l1,u1,u2);
		l1=u2+1;
	}
	if(l1<n)  //還剩下一個(gè)有序子表,將其復(fù)制到swap
	{
		for(;l1<n;l1++)
			swap[l1]=A[l1];
	}
}

/*二路歸并時(shí)要做多趟歸并,第一趟歸并時(shí)令歸并的字序列長(zhǎng)度為k=1,
  以后每執(zhí)行一趟歸并并將k加倍。待排序的原始數(shù)據(jù)放在數(shù)組e中,輔助數(shù)組swap用來存放每趟歸并的結(jié)果。
  在一趟歸并結(jié)束下一趟歸并開始之前,應(yīng)把swap數(shù)組中的數(shù)據(jù)放回到數(shù)組e中。
 */
template <typename T>
void Sort<T>::MergeSort(T e[],long n)   //對(duì)e[0]到e[n-1]排序
{
	long k=1;//數(shù)字1  //k表示子表的長(zhǎng)度
	T *swap=new T[n];  //動(dòng)態(tài)申請(qǐng)輔助數(shù)組
	while(k<n)
	{
		MergePass(e,n,swap,k);
		for(long i=0;i<n;i++)  //將歸并后的數(shù)據(jù)放回?cái)?shù)組e
			e[i]=swap[i];
		k=2*k;   //歸并長(zhǎng)度加倍
	}
//	cout<<"歸并排序的比較次數(shù)是:"<<cpNum<<",移動(dòng)次數(shù)是:"<<movNum<<endl;
	delete []swap;
}





template <typename T>
void Swap(T &x,T &y)
{
	T temp=x;
	x=y;
	y=temp;
}

template <typename T>
void QuickSort1(T A[],long low,long high,double &c,double &m) //對(duì)A[low]~A[high]排序
{
	T pivot;
	long scanUp,scanDown;
	long mid;
	if(high-low<=0)
		return;
	else
	{
		if(high-low==1)
		{
			c++;
			if(A[high]<A[low])
			{
				m=m+3;
				Swap(A[low],A[high]);
			}
			return;
		}
	}
	mid=(low+high)/2;
	pivot=A[mid];
	Swap(A[mid],A[low]);
	m=m+3;
	scanUp=low+1;
	scanDown=high;
	do
	{
		while(scanUp<=scanDown && A[scanUp]<=pivot)
		{
			c++;
			scanUp++;
		}
		while(pivot<A[scanDown])
		{
			c++;
			scanDown--;
		}
		if(scanUp<scanDown)
		{
			m=m+3;
			Swap(A[scanUp],A[scanDown]);
		}
	}while(scanUp<scanDown);
	A[low]=A[scanDown];
	A[scanDown]=pivot;
	if(low<scanDown-1)
		QuickSort1(A,low,scanDown-1,c,m);
	if(scanDown+1<high)
		QuickSort1(A,scanDown+1,high,c,m);
}

template <typename T>
void Sort<T>::QuickSort(T A[],long low,long high) //對(duì)A[low]~A[high]排序
{
	double cpNum=0;
	double movNum=0;
	QuickSort1(A,low,high,cpNum,movNum);
	cout<<"快速排序的比較次數(shù)是:"<<cpNum<<",移動(dòng)次數(shù)是:"<<movNum<<endl;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久免费看少妇高潮| 久久久无码精品亚洲日韩按摩| 麻豆成人久久精品二区三区红 | aaa欧美大片| 免费在线看成人av| 成人欧美一区二区三区小说| 欧美成人官网二区| 欧美性极品少妇| 99精品久久只有精品| 麻豆国产精品777777在线| 一区二区三区免费| 国产欧美va欧美不卡在线| 欧美一区二区在线观看| 欧美在线色视频| 国产v综合v亚洲欧| 美女高潮久久久| 亚洲1区2区3区4区| 亚洲精品免费在线| 国产精品婷婷午夜在线观看| 日韩精品一区二区三区swag| 欧美丝袜丝交足nylons| 一本久久a久久免费精品不卡| 国产一区二区免费在线| 免费在线观看日韩欧美| 五月天亚洲精品| 一区二区三区四区国产精品| 国产精品成人一区二区三区夜夜夜| 亚洲精品在线观看网站| 欧美mv日韩mv国产网站app| 欧美精品亚洲一区二区在线播放| 欧美亚洲国产一区二区三区va| 97久久精品人人做人人爽| 成人黄色综合网站| 国产成人在线网站| 国产精品99久| 国产成人免费在线视频| 国产高清亚洲一区| 丁香桃色午夜亚洲一区二区三区 | 99在线精品一区二区三区| 国产精品123| 国产成人精品影院| 成人永久aaa| 91在线免费看| 日本乱码高清不卡字幕| 色拍拍在线精品视频8848| 一本一道久久a久久精品综合蜜臀| 成人av免费在线播放| av午夜一区麻豆| 色婷婷亚洲一区二区三区| 91极品视觉盛宴| 欧美日韩成人高清| 欧美一区二区三区四区高清| 欧美一级一区二区| 26uuu久久综合| 国产欧美一区二区精品久导航| 久久精品夜色噜噜亚洲a∨| 国产欧美日韩一区二区三区在线观看| 国产精品色婷婷久久58| 亚洲人成人一区二区在线观看| 一区二区三区日韩在线观看| 亚洲一区二区三区视频在线播放 | 成人网男人的天堂| 色噜噜狠狠一区二区三区果冻| 欧美最猛性xxxxx直播| 欧美日韩精品二区第二页| 日韩精品影音先锋| 国产欧美精品区一区二区三区| 亚洲三级理论片| 日韩和欧美一区二区三区| 久久www免费人成看片高清| 国产成人在线影院| 欧美性猛片aaaaaaa做受| 欧美成人猛片aaaaaaa| 国产精品久久久久久福利一牛影视 | 97久久人人超碰| 欧美日韩第一区日日骚| 国产视频一区二区三区在线观看| 亚洲欧美日韩国产一区二区三区| 日本视频一区二区三区| 国产a区久久久| 欧美日韩成人一区| 欧美韩国一区二区| 亚洲国产精品麻豆| 国产成人免费av在线| 欧美日韩一区不卡| 久久色中文字幕| 亚洲自拍偷拍综合| 国产精品一品二品| 欧美日韩视频一区二区| 国产午夜精品美女毛片视频| 亚洲精品伦理在线| 国产精品一区一区| 欧美日韩国产一区二区三区地区| 国产亚洲一区二区三区| 香蕉成人伊视频在线观看| 国产福利一区在线观看| 欧美丰满少妇xxxxx高潮对白| 国产欧美一区二区精品秋霞影院| 日韩福利视频网| 99久久婷婷国产综合精品电影| 日韩视频免费直播| 亚洲一区二区三区中文字幕| 成人午夜免费av| 日韩亚洲欧美成人一区| 亚洲精品视频在线观看免费| 国产美女久久久久| 日韩欧美亚洲国产另类| 亚洲一区二区三区四区五区黄 | 91福利在线看| 国产欧美视频在线观看| 韩国视频一区二区| 在线成人av网站| 亚洲狠狠丁香婷婷综合久久久| 成人性生交大合| 久久久蜜臀国产一区二区| 丝袜美腿亚洲一区| 欧美三级三级三级| 亚洲激情自拍偷拍| 91免费版在线看| 国产精品久久久久一区| 国产成人鲁色资源国产91色综| 精品国产区一区| 麻豆精品久久久| 日韩亚洲欧美高清| 麻豆国产欧美一区二区三区| 911精品国产一区二区在线| 一级日本不卡的影视| 91首页免费视频| 国产精品美女久久久久久久久久久| 国产麻豆一精品一av一免费| 欧美不卡一区二区三区| 免费人成网站在线观看欧美高清| 欧美日韩一级二级三级| 亚洲成人精品影院| 欧美久久久久久蜜桃| 日韩高清一区在线| 91精品午夜视频| 免费一级欧美片在线观看| 3751色影院一区二区三区| 天堂久久一区二区三区| 欧美精品日韩一区| 日韩av一区二区在线影视| 欧美福利视频一区| 美美哒免费高清在线观看视频一区二区 | 欧美极品少妇xxxxⅹ高跟鞋 | 精品日韩99亚洲| 久草热8精品视频在线观看| 欧美成人性战久久| 国产精品自拍毛片| 国产精品日产欧美久久久久| 丁香一区二区三区| 亚洲美女电影在线| 欧美日韩极品在线观看一区| 日本vs亚洲vs韩国一区三区二区| 欧美一区二区在线视频| 国产毛片精品视频| 国产精品美女久久久久久久久久久| 99vv1com这只有精品| 一区二区免费在线| 欧美一区二区三区系列电影| 国产在线一区二区综合免费视频| 久久精品日韩一区二区三区| 国产91在线看| 伊人性伊人情综合网| 欧美日韩一区二区在线观看视频| 天堂成人国产精品一区| 久久亚洲二区三区| av一区二区三区在线| 亚洲国产精品久久久久秋霞影院| 欧美一级日韩免费不卡| 粉嫩av亚洲一区二区图片| 亚洲精品午夜久久久| 日韩免费高清视频| 91在线观看一区二区| 午夜不卡av在线| 久久久www成人免费毛片麻豆 | 国产精品亚洲专一区二区三区 | 青草国产精品久久久久久| 久久综合视频网| 99riav久久精品riav| 看国产成人h片视频| 国产精品福利在线播放| 777午夜精品免费视频| 成人免费av在线| 日韩二区三区在线观看| 国产精品久久精品日日| 欧美一级一区二区| 99麻豆久久久国产精品免费| 污片在线观看一区二区| 中文一区在线播放| 日韩一区二区精品在线观看| 99久久久久久| 国产一区在线观看麻豆| 亚洲一区在线电影| 国产日韩欧美麻豆| 欧美一区二区在线免费观看| 日本精品一区二区三区四区的功能| 狠狠色狠狠色综合| 日韩在线一二三区| 18欧美亚洲精品|