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

📄 sortmain.cpp

📁 这是同一个数据结构的课程设计,由C++语言编写的
💻 CPP
字号:
#include <stdio.h> 
#include <iostream.h>
#include <math.h>
#include <time.h>
#include <conio.h> 
#include "sort.cpp"

//对各种算法进行计时
//num: 要进行排序的元素个数
//bRandom: 是否为随机数,true为随机数,false为有序数。
//bStepUp: 是否为正序,true为正序,false为逆序。
void TimeGame(int num, bool bRandom, bool bStepUp)
{		
	int i;	
	int *ia1, *ia2;

	clock_t Start, Finish;
	double  Duration;

	sort<int> s(num);		// create sort object

	ia1 = new int[num+1];
	ia2 = new int[num+1];

	if (bRandom)
	{
		for (i=1; i<num+1; i++)
			ia1[i] = ia2[i] = rand();
	}
	else
	{
		if (bStepUp)
		{
			for (i=1; i<=num; i++)
				ia1[i] = ia2[i] = i;
		}
		else
		{
			int tmp = num;
			for (i=1; i<=num; i++)
				ia1[i] = ia2[i] = tmp--;			
		}
	}

	cout << "size: " << num << endl;

	Start = clock();
	s.Insertion(ia1);
	Finish = clock();
	Duration = (double)(Finish - Start) / CLOCKS_PER_SEC;
	printf("Insert times: %.3f seconds\n", Duration );

	for (i=1; i<num+1; i++)
		ia1[i] = ia2[i];

	Start = clock();
	s.Shell(ia1);
	Finish = clock();
	Duration = (double)(Finish - Start) / CLOCKS_PER_SEC;
	printf("Shell  times: %.3f seconds\n", Duration );

	for (i=1; i<num+1; i++)
		ia1[i] = ia2[i];

	Start = clock();
	s.Selection(ia1);
	Finish = clock();
	Duration = (double)(Finish - Start) / CLOCKS_PER_SEC;
	printf("Select times: %.3f seconds\n", Duration);

	for (i=1; i<num+1; i++)
		ia1[i] = ia2[i];

	Start = clock();
	s.Bubble(ia1);
	Finish = clock();
	Duration = (double)(Finish - Start) / CLOCKS_PER_SEC;
	printf("Bubble times: %.3f seconds\n", Duration );

	for (i=1; i<num+1; i++)
		ia1[i] = ia2[i];

	Start = clock();
	s.Quick(ia1, 1, num);
	Finish = clock();
	Duration = (double)(Finish - Start) / CLOCKS_PER_SEC;
	printf("Quick  times: %.3f seconds\n", Duration );

	for (i=1; i<num+1; i++)
		ia1[i] = ia2[i];

	Start = clock();
	s.Heap(ia1);
	Finish = clock();
	Duration = (double)(Finish - Start) / CLOCKS_PER_SEC;
	printf("Heap   times: %.3f seconds\n", Duration );

	for (i=1; i<num+1; i++)
		ia1[i] = ia2[i];

	Start = clock();
	s.Merge(ia1);
	Finish = clock();
	Duration = (double)(Finish - Start) / CLOCKS_PER_SEC;
	printf("Merge  times: %.3f seconds\n", Duration );

	for (i=1; i<num+1; i++)
		ia1[i] = ia2[i];
	
	Start = clock();
	s.Radix(ia1);
	Finish = clock();
	Duration = (double)(Finish - Start) / CLOCKS_PER_SEC;
	printf("Radix  times: %.3f seconds\n", Duration );

	delete [] ia1;
	delete [] ia2;
}

void main()
{
	char choice;
	int i, Num;
	cout<<endl;
	cout<<"                              数据结构大作业                   "<<endl<<endl;
	cout<<" 姓名:胡海鑫  年级:2005年春计算机专业(专升本) 教学点:华工 学号:200504602011030"<<endl;
	cout<<" email:konyhu@163.com       电话:13416388624"<<endl;
    cout<<endl;
	int chioce;
	while(1)
	{
		cout<<"                  ***************排序算法***************\n操作选择:\n";
		cout<<"                            1:直接插入排序\n";
		cout<<"                            2:直接插入排序改进1\n";
		cout<<"                            3:冒泡排序\n";
		cout<<"                            4:冒泡排序改进1\n";
		cout<<"                            5:冒泡排序改进2\n";
		cout<<"                            6:直接选择排序\n";
		cout<<"                            7:Shell排序\n";
		cout<<"                            8:Shell排序改进1\n";
		cout<<"                            9:快速排序\n";
		cout<<"                            10:快速排序改进1\n";
		cout<<"                            11:归并排序\n";
		cout<<"                            12:归并排序改进1\n";
		cout<<"                            13:堆排序\n";
		cout<<"                            14:堆排序改进1\n";
        cout<<"                            0:退出\n";
		cout<<"请键入:";
cin>>chioce;

}
	
}

⌨️ 快捷键说明

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