⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 各种内部排序算法的实现和比较
💻 CPP
字号:
#include "base.h"

void Randnumber	(void);
void Insort		(float &tI, int flag);
void BInsort	(float &tBI,int flag);
void TInsort	(float &tT, int flag);
void SInsort	(float &tSI,int flag);
void ShInsort	(float &tSh,int flag);
void Busort		(float &tBu,int flag);
void Qsort		(float &tQ,	int flag);
void Ssort		(float &tSe,int flag);
void Hsort		(float &tH,	int flag);
void Msort		(float &tM, int flag);
void Rsort		(float &tR,	int flag);
void WriteResult(float t[]);

void mainmenu()
{
	int choice;
	cout<<"\t\t\t内部排序算法比较"<<endl;
	cout<<"\t\t\t     主菜单"<<endl;
	cout<<"\t\t 1.产生随机数并保存"<<endl;
	cout<<"\t\t 2.直接插入排序"<<endl;
	cout<<"\t\t 3.折半插入排序"<<endl;
	cout<<"\t\t 4.2-路插入排序"<<endl;
	cout<<"\t\t 5.表插入排序"<<endl;
	cout<<"\t\t 6.希尔排序"<<endl;
	cout<<"\t\t 7.冒泡排序"<<endl;
	cout<<"\t\t 8.快速排序"<<endl;
	cout<<"\t\t 9.简单选择排序"<<endl;
	cout<<"\t\t10.堆排序"<<endl;
	cout<<"\t\t11.归并排序"<<endl;
	cout<<"\t\t12.基数排序"<<endl;
	cout<<"\t\t13.各种排序比较"<<endl;
	cout<<"\t\t14.退出"<<endl;
	cout<<"\t\t请输入选择:	";
	cin >>choice;
	if(choice<1||choice>14)
	{
		system("cls");
		cout<<"输入错误,请重新输入."<<endl;
		mainmenu();
	}

	switch(choice)
	{
	case 1:{
				system("cls");
				Randnumber();
				cout<<"产生10个样本,每个样本50000个数据"<<endl;
				cout<<"10个样本存在a.txt~j.txt中,可以查看!"<<endl;
				system("PAUSE");
				mainmenu();
				break;
		   }
	case 2:{
				system("cls");
				float tI;
				Insort(tI,1);
				system("PAUSE");
				system("cls");
				mainmenu();
				break;
		   }
	case 3:{
				system("cls");
				float tBI;
				BInsort(tBI,1);
				system("PAUSE");
				system("cls");
				mainmenu();
				break;
		   }
	case 4:{
				system("cls");
				float tT;
				TInsort(tT,1);
				system("PAUSE");
				system("cls");
				mainmenu();
				break;
		   }
	case 5:{
				system("cls");
				float tSI;
				SInsort(tSI,1);
				system("PAUSE");
				system("cls");
				mainmenu();
				break;
		   }
	case 6:{
				system("cls");
				float tSh;
				ShInsort(tSh,1);
				system("PAUSE");
				system("cls");
				mainmenu();
				break;
		   }
	case 7:{
				system("cls");
				float tBu;
				Busort(tBu,1);
				system("PAUSE");
				system("cls");
				mainmenu();
				break;
			}
	case 8:{
				system("cls");
				float tQ;
				Qsort(tQ,1);
				system("PAUSE");
				system("cls");
				mainmenu();
				break;
		   }
	case 9:{
				system("cls");
				float tSe;
				Ssort(tSe,1);
				system("PAUSE");
				system("cls");
				mainmenu();
				break;
			}
	case 10:{
				system("cls");
				float tH;
				Hsort(tH,1);
				system("PAUSE");
				system("cls");
				mainmenu();
				break;
			}
	case 11:{
				system("cls");
				float tM;
				Msort(tM,1);
				system("PAUSE");
				system("cls");
				mainmenu();
				break;
			}
	case 12:{
				system("cls");
				float tR;
				Rsort(tR,1);
				system("PAUSE");
				system("cls");
				mainmenu();
				break;
			}
	case 13:{
				system("cls");
				float t[12]={0};
				int   i;
				Insort	(t[1] ,0);//	system	("PAUSE");	system	("cls");
				BInsort	(t[2] ,0);//	system	("PAUSE");	system	("cls");
				TInsort	(t[3] ,0);//	system	("PAUSE");	system	("cls");
				SInsort	(t[4] ,0);//	system	("PAUSE");	system	("cls");
				ShInsort(t[5] ,0);//	system	("PAUSE");	system	("cls");
				Busort	(t[6] ,0);//	system	("PAUSE");	system	("cls");
				Qsort	(t[7] ,0);//	system	("PAUSE");	system	("cls");
				Ssort	(t[8] ,0);//	system	("PAUSE");	system	("cls");
				Hsort	(t[9] ,0);//	system	("PAUSE");	system	("cls");
				Msort	(t[10],0);//	system	("PAUSE");	system	("cls");
				Rsort	(t[11],0);//	system	("PAUSE");	system	("cls");

				cout<<"各种排序用时比较:"<<endl;
				cout<<"排序用时:"<<endl;
				cout.precision(6);
				cout.setf(ios::fixed|ios::right|ios::showpoint);
				cout<<"直接插入排序:";
				cout.width(10);
				cout<<t[1]/10<<"s"<<endl;
				cout<<"折半插入排序:";
				cout.width(10);
				cout<<t[2]/10<<"s"<<endl;
				cout<<"2-路插入排序:";
				cout.width(10);
				cout<<t[3]/10<<"s"<<endl;
				cout<<"表插入排序:  ";
				cout.width(10);
				cout<<t[4]/10<<"s"<<endl;
				cout<<"希尔排序:    ";
				cout.width(10);
				cout<<t[5]/10<<"s"<<endl;
				cout<<"冒泡排序:    ";
				cout.width(10);
				cout<<t[6]/10<<"s"<<endl;
				cout<<"快速排序:    ";
				cout.width(10);
				cout<<t[7]/10<<"s"<<endl;
				cout<<"简单选择排序:";
				cout.width(10);
				cout<<t[8]/10<<"s"<<endl;
				cout<<"堆排序:      ";
				cout.width(10);
				cout<<t[9]/10<<"s"<<endl;
				cout<<"归并排序:    ";
				cout.width(10);
				cout<<t[10]/10<<"s"<<endl;
				cout<<"基数排序:    ";
				cout.width(10);
				cout<<t[11]/10<<"s"<<endl;
				cout<<endl;
				cout<<"1.保存统计结果"<<endl;
				cout<<"2.回主菜单"<<endl;
				cout<<"3.退出"<<endl;
				cin >>i;
				while(i<1||i>3)
				{
					cout<<"请重新输入:"<<endl;
					cin >>i;
				}
				switch(i)
				{
				case 1:{
						WriteResult(t);
						cout<<"统计结果已写入Result.txt文件中,可以查看."<<endl;
						system("PAUSE");
						system("cls");
						mainmenu();
						break;
					   }
				case 2:{
						system("cls");
						mainmenu();	break;
					   }
				case 3:	exit(0);
				}
			}
	case 14:	exit(0);
		}
}

void main()
{
	mainmenu();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -