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

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

?? basicsort.cpp

?? 基本排序算法比較與選擇
?? CPP
字號(hào):
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<time.h>
#include<stdlib.h>


void displaysorts(int src[], int des[], int n);
void outdata(int src[],int n);
void outruntime(int runtime);
int  choiceYN(void);

void bubblesort(int src[],int n);
void bubblesort2(int src[],int n);
void insertsort(int src[],int n);
void shellsort(int src[],int n);
void heapsort(int src[],int m);
void sift(int src[],int,int);
void quicksort(int src[],int low,int high);
void mergesort(int src[],int n);
void mergpass(int src[],int des[],int,int);
void merge(int src[],int des[],int i,int y,int z);
void selectsort(int src[],int n);
void radixsort(int src[],int n);

int  bDisplayResult=0;		/* 是否顯示排序后數(shù)據(jù) */

void main()
{
	int i,n;
	int *bak,*des;

	i=clock();
	srand(i);
	printf("請(qǐng)輸入實(shí)驗(yàn)數(shù)據(jù)個(gè)數(shù),典型數(shù)據(jù)如10、100、...、1000000:");
	scanf("%d",&n);
	/*獲得隨機(jī)數(shù)據(jù)*/
	bak=(int*)malloc(sizeof(int)*n);
	des=(int*)malloc(sizeof(int)*(n+1));		/*某些排序需前加一空位,以提高效率*/
	for(i=0;i<n;i++)
		bak[i]=::rand();

	printf("是否顯示排序后結(jié)果:[Y/N]");
	bDisplayResult=choiceYN();

	printf("=============無序數(shù)據(jù)排序======================\n");
	outdata(bak,n);
	displaysorts(bak, des, n);
	printf("===============================================\n");

	printf("是否進(jìn)行正序各反序的數(shù)據(jù)實(shí)驗(yàn)?[Y/N]:");
	i=choiceYN();
	if ( i )
	{
		memcpy(bak, des, sizeof(int)*n);
		printf("=============正序數(shù)據(jù)排序======================\n");
		outdata(bak,n);
		displaysorts(bak, des, n);
		printf("===============================================\n");

		for ( i=n-1; i>=0; i--)
			bak[n-1-i]=des[i];
		printf("=============反序數(shù)據(jù)排序======================\n");
		outdata(bak,n);
		displaysorts(bak, des, n);
		printf("===============================================\n");

	}

	free(bak);
	free(des);
	printf("按任一鍵結(jié)束...");
	getch();
}

int choiceYN()
{
	int ret;
	for ( char ch=0; ch=getch(); )
	{
		if( ch=='y'||ch=='Y' )
		{
			ret=1;
			printf("Y\n");
			break;
		}
		else if ( ch=='n'||ch=='N' )
		{
			ret=0;
			printf("N\n");
			break;
		}
	}
	return ret;
}

void displaysorts(int src[], int des[], int n)
{
	int begin,end;

	memcpy(des, src, sizeof(int)*n);
	printf("---- bubble sort ----\n");
	begin=clock();
	bubblesort(des,n);
	end=clock();
	outdata(des,n);
	outruntime(end-begin);

	memcpy(des, src, sizeof(int)*n);
	printf("---- bubble sort 2 ----\n");
	begin=clock();
	bubblesort2(des,n);
	end=clock();
	outdata(des,n);
	outruntime(end-begin);

	memcpy(des, src, sizeof(int)*n);
	printf("---- quick sort ----\n");
	begin=clock();
	quicksort(des,0,n-1);
	end=clock();
	outdata(des,n);
	outruntime(end-begin);

	memcpy(des, src, sizeof(int)*n);
	printf("---- select sort ----\n");
	begin=clock();
	selectsort(des,n);
	end=clock();
	outdata(des,n);
	outruntime(end-begin);

	memcpy(des, src, sizeof(int)*n);
	printf("---- HEAP SORT ---- \n");
	begin=clock();
	heapsort(des,n);
	end=clock();
	outdata(des,n);
	outruntime(end-begin);

	memcpy(&des[1], src, sizeof(int)*n);
	printf("---- INSERT SORT ----\n");
	begin=clock();
	insertsort(des,n);	/*在此在數(shù)組前留一空位*/
	end=clock();
	outdata(&des[1],n);
	outruntime(end-begin);

	memcpy(des, src, sizeof(int)*n);
	printf("---- SHELL SORT ----\n");
	begin=clock();
	shellsort(des,n);
	end=clock();
	outdata(des,n);
	outruntime(end-begin);

	memcpy(des, src, sizeof(int)*n);
	printf("---- MERGE SORT ----\n");
	begin=clock();
	mergesort(des, n);
	end=clock();
	outdata(des,n);
	outruntime(end-begin);

	memcpy(des, src, sizeof(int)*n);
	printf("---- radix sort ----\n");
	begin=clock();
	radixsort(des,n);
	end=clock();
	outdata(des,n);
	outruntime(end-begin);
}


void outdata(int src[],int n)
{
	int i;
	if( bDisplayResult )
	{
		for(i=0;i<n;i++)
			printf("%-7d", src[i]);
		printf("\n");
	}
}


void outruntime(int runtime)
{
	printf("%.4f秒",(long double) runtime/CLOCKS_PER_SEC);
	printf("\n");
}

/*============================================================================*/
/*冒泡排序(下沉)*/
void bubblesort(int src[],int n)
{
	int i,j,x;
	int bexchange;
	for(i=n-1;i;i--)
	{
		bexchange=0;
		for(j=0;j<i;j++)
		{
			if(src[j]>src[j+1])
			{
				x=src[j+1];
				src[j+1]=src[j];
				src[j]=x;
				bexchange=1;
			}
		}

		if( !bexchange )
			return;
	}
}

/*冒泡排序改進(jìn),先下沉一次,再上浮一次*/
void bubblesort2(int src[],int n)
{
	int i,j,k;
	int tmp;
	int bexchange;
	for(i=0,j=n-1; i<j;)
	{
		bexchange=0;
		for(k=i;k<j;k++)	/*下沉一次*/
		{
			if(src[k]>src[k+1])
			{
				tmp=src[k+1];
				src[k+1]=src[k];
				src[k]=tmp;
				bexchange=1;
			}
		}
		j--;

		if( bexchange )
		{
			bexchange=0;
			/*for(k=j-1; k>i; k--)	上浮一次*/
			for(k=j; k>i; k--)		/*修正*/
				if(src[k+1]<src[k])
				{
					tmp=src[k+1];
					src[k+1]=src[k];
					src[k]=tmp;
					bexchange=1;
				}
		}
		i++;

		if ( !bexchange )
			return;
	}
}

/*快速排序*/
void quicksort(int src[],int low,int high)
{
	int i,j;
	int tmp;
	if(low<high)
	{
		i=low;
		j=high;
		tmp=src[low];	/*選第一個(gè)值*/
		while(i<j)
		{
			while(i<j && src[j]>tmp)
				j--;
			if(i<j)
				src[i++]=src[j];
			while(i<j&&src[i]<=tmp)
				i++;
			if(i<j)
				src[j--]=src[i];
		}
		src[i]=tmp;

		quicksort(src,low,i-1);
		quicksort(src,i+1,high);
	}
}


/*選擇排序*/
void selectsort(int src[],int n)
{
	int i,j,k,tmp;
	for(i=0;i<n;i++)
	{
		k=i;
		for(j=i+1;j<n;j++)
			if(src[j]<src[k])
				k=j;
		if(k!=i)
		{
			tmp=src[i];
			src[i]=src[k];
			src[k]=tmp;
		}
	}
}


/*堆排序*/
void heapsort(int src[],int n)
{
	int k, des;
	long tmp;

	for(k=n/2-1;k>=0;k--)		/*建堆*/
		sift(src, n, k);

	for(des=n-1;des>0;des--)	/*排序*/
	{
		tmp=src[0];
		src[0]=src[des];
		src[des]=tmp;
		sift(src,des,0);
	}
}

void sift(int src[],int n,int k)
{
	int i,j;
	int tmp;
	i=k;
	j=2*i+1;
	tmp=src[i];
	while(j<n)
	{
		if((j<n-1)&&(src[j]<src[j+1]))
			j++;
		if(tmp<src[j])
		{
			src[i]=src[j];
			i=j;
			j=2*i+1;
		}
		else
			break;
	}
	src[i]=tmp;
}


/*插入排序*/
void insertsort(int src[],int n)
{
	int i,j;
	int tmp;
	for(i=2;i<=n;i++)
	{
		tmp=src[i];
		src[0]=tmp;
		j=i-1;
		while( tmp<src[j])
		{
			src[j+1]=src[j];
			j--;
		}
		src[j+1]=tmp;
	}
}


/*希爾排序*/
void shellsort(int src[],int n)
{
	int gap,i,j,temp;
	for(gap=n/2;gap>0;gap/=2)
		for(i=gap;i<n;i++)
			for(j=i-gap; (j>=0)&&(src[j]>src[j+gap]); j-=gap)
			{
				temp=src[j];
				src[j]=src[j+gap];
				src[j+gap]=temp;
			}
}

/*基數(shù)排序*/
void radixsort(int src[],int n)
{
	int keysize=5;
	int i,j,k,t;
	int d,e,m=0;
	int *c[10],z[10];

	for (i=0;i<10;i++)
		c[i]=(int*)malloc(sizeof(int)*n);

	for(i=0;i<keysize;i++)
	{
		memset(z,0,sizeof(z));
		for(j=0;j<n;j++)
		{
			k=src[j];
			for (t=0;t<i;t++)
				k=k/10;
			k=k%10;
			*(c[k]+z[k])=src[j];
			z[k]++;
		}

		m=0;
		for(d=0;d<10;d++)
		{
			for(e=0;e<z[d];e++)
			{
				src[m]=*(c[d]+e);
				m++;
			}
		}
	}

	for (i=0;i<10;i++)
		free(c[i]);
}


/*合并排序*/
void mergesort(int src[],int n)
{
	int *des=(int*)malloc(sizeof(int)*n);
	int f,len;
	f=0;
	len=1;
	while(len<n)
	{
		if(f==0)
		{
			f=1;
			mergpass(src,des,n,len);
		}
		else
		{
			f=0;
			mergpass(des,src,n,len);
		}
		len=2*len;
	}
	if(f)
		memcpy(src,des,sizeof(int)*(n));

	free(des);
}

void mergpass(int src[],int des[],int n,int len)
{
	int f_start, s_end;

	f_start=0;
	while(f_start+len<n)
	{
		s_end=f_start+2*len-1;
		if(s_end>=n)	/*最后一段可能不足n*/
			s_end=n-1;
		merge(src,des,f_start,f_start+len-1,s_end);
		f_start=s_end+1;
	}
	if(f_start<n)
		for(; f_start<n; f_start++)
			des[f_start]=src[f_start];
}

void merge(int src[],int des[],int start,int m,int n)
{
	int i,j,k;
	k=i=start;
	j=m+1;
	while(i<=m && j<=n )
	{
		if(src[i]<=src[j])
			des[k++]=src[i++];
		else
			des[k++]=src[j++];
	}
	while(i<=m)
		des[k++]=src[i++];
	while(j<=n)
		des[k++]=src[j++];
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲av在线| 亚洲精品一区在线观看| 国产福利电影一区二区三区| 免费不卡在线视频| 欧美96一区二区免费视频| 日韩国产欧美一区二区三区| 日韩中文字幕一区二区三区| 久久精品噜噜噜成人88aⅴ| 久久99蜜桃精品| 国模一区二区三区白浆| 成人免费精品视频| 色噜噜狠狠成人中文综合 | 奇米四色…亚洲| 蜜桃视频在线观看一区二区| 激情六月婷婷久久| 成人涩涩免费视频| 欧美在线高清视频| 欧美tk—视频vk| 国产精品美女www爽爽爽| 亚洲人成在线观看一区二区| 午夜av一区二区| 国产综合一区二区| 91一区二区在线| 91麻豆精品91久久久久同性| 久久先锋影音av| 亚洲少妇屁股交4| 蜜桃久久av一区| 成人免费视频网站在线观看| 欧美吞精做爰啪啪高潮| 欧美成人乱码一区二区三区| 中文字幕在线播放不卡一区| 日韩福利电影在线| av亚洲精华国产精华精华| 欧美日本精品一区二区三区| 亚洲精品在线网站| 亚洲精品视频免费看| 美女精品自拍一二三四| 99精品国产热久久91蜜凸| 日韩三区在线观看| 一区二区三区在线视频免费观看| 三级久久三级久久久| k8久久久一区二区三区| 精品国产乱子伦一区| 一区二区欧美国产| 丁香婷婷综合网| 欧美xxxxxxxx| 午夜精品福利一区二区蜜股av| 国产69精品久久久久777| 欧美一区二区三区婷婷月色| 亚洲精品乱码久久久久久黑人| 国产剧情在线观看一区二区| 欧美片网站yy| 亚洲五码中文字幕| 97超碰欧美中文字幕| 久久久精品黄色| 激情五月播播久久久精品| 欧美卡1卡2卡| 亚洲高清三级视频| 色老头久久综合| 日韩一区日韩二区| 国产不卡视频在线播放| 欧美不卡一区二区三区四区| 日韩国产精品久久| 在线播放中文一区| 亚洲国产视频a| 欧美亚洲综合一区| 亚洲激情第一区| 在线视频你懂得一区| 亚洲黄色免费网站| 欧美写真视频网站| 亚洲大片精品永久免费| 日本黄色一区二区| 亚洲成人激情社区| 91精品国产麻豆国产自产在线 | 在线观看精品一区| 亚洲老妇xxxxxx| av在线播放不卡| 一区二区三区在线免费观看| 欧美性欧美巨大黑白大战| 亚洲综合另类小说| 91久久精品网| 亚洲福利视频一区二区| 欧美精三区欧美精三区| 美美哒免费高清在线观看视频一区二区| 欧美自拍偷拍午夜视频| 亚洲福利电影网| 欧美一区二区在线视频| 精品亚洲aⅴ乱码一区二区三区| 欧美精品一区二区三区视频| 成人午夜免费电影| 亚洲天天做日日做天天谢日日欢 | 另类小说色综合网站| 久久婷婷久久一区二区三区| 丁香六月久久综合狠狠色| 亚洲三级在线免费| 91精选在线观看| 国产成人综合网| 亚洲综合图片区| 日韩欧美国产麻豆| 91在线你懂得| 日本人妖一区二区| 欧美国产亚洲另类动漫| 欧美日韩国产片| 丁香一区二区三区| 性久久久久久久| 国产欧美一区在线| 欧美欧美欧美欧美| 成人精品在线视频观看| 午夜天堂影视香蕉久久| 亚洲精品在线免费观看视频| 99国产欧美另类久久久精品| 蜜臀av性久久久久蜜臀aⅴ| 国产精品久久久久国产精品日日| 这里只有精品视频在线观看| 成人黄色大片在线观看| 免费黄网站欧美| 一区二区在线观看av| 久久午夜电影网| 91精品国产综合久久精品app| 岛国精品在线播放| 久久电影网站中文字幕| 夜夜揉揉日日人人青青一国产精品| 精品久久一二三区| 欧美高清dvd| 色999日韩国产欧美一区二区| 激情六月婷婷综合| 日韩中文字幕亚洲一区二区va在线| 国产精品剧情在线亚洲| 337p日本欧洲亚洲大胆精品| 精品视频资源站| 99re热视频精品| 国产一区免费电影| 日韩成人精品在线| 亚洲成人黄色影院| 亚洲国产婷婷综合在线精品| 亚洲视频一区二区免费在线观看| 国产网站一区二区三区| 久久伊人中文字幕| 精品国产亚洲一区二区三区在线观看| 精品视频123区在线观看| 在线精品视频小说1| 91香蕉视频mp4| 99精品久久99久久久久| 成人激情免费网站| 高清不卡一区二区| 波多野结衣中文字幕一区| 国产呦萝稀缺另类资源| 精品亚洲porn| 国产激情偷乱视频一区二区三区 | 91久久精品日日躁夜夜躁欧美| 春色校园综合激情亚洲| 床上的激情91.| 成人高清在线视频| 国产成人8x视频一区二区| 国产成人av影院| 成人免费毛片嘿嘿连载视频| 不卡电影一区二区三区| 99re在线精品| 精品视频在线免费观看| 欧美二区三区91| 日韩美女一区二区三区| 国产亚洲欧美在线| 中文字幕一区二区三中文字幕| 综合婷婷亚洲小说| 香蕉av福利精品导航| 免费成人你懂的| 国产一区二区看久久| 成人动漫视频在线| 色香蕉成人二区免费| 欧美日韩成人综合在线一区二区| 3d成人动漫网站| 久久亚洲精华国产精华液 | 亚洲一区二区中文在线| 日日骚欧美日韩| 国产一区二区三区在线观看免费| 国产黄人亚洲片| 欧美亚洲日本国产| 日韩欧美一二三| 中文字幕一区二区日韩精品绯色| 尤物av一区二区| 看国产成人h片视频| 成人av综合一区| 欧美日韩电影一区| 国产色一区二区| 亚洲精品国产精华液| 老司机一区二区| 色婷婷久久综合| 久久综合色8888| 亚洲精品视频在线| 日韩中文欧美在线| 成人性生交大片免费看视频在线| 欧美久久久久久久久中文字幕| 久久中文娱乐网| 亚洲福利国产精品| www.成人网.com| 国产亚洲欧洲997久久综合| 亚洲国产精品自拍| kk眼镜猥琐国模调教系列一区二区| 日韩一级二级三级| 亚洲一区二区三区爽爽爽爽爽|