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

📄 allkindsofsort.cpp

📁 各种排序算法设计。 包括简单的:冒泡
💻 CPP
字号:
// allkindsofsort.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
//#include "SortClass.h"
#include "SortClass.cpp"

#include <cmath>
#include <cstdlib>
//#include <iostream>
using namespace std;
//#define MaxLen 1000000
//int m[MaxLen];
//int g_nOriginal[MaxLen+10],g_nFinished[MaxLen+10];
//int g_nTemp1[MaxLen+10],g_nTemp2[MaxLen+10];
			//create two temporary arrays 

extern int g_nOriginal[MaxLen+10];


void inputmode()
{

	int scale;
	cout<<"请输入数据的规模:"<<endl;
	cin>>scale;
	
	for(int i=0;i<scale;i++)
	{
		cout<<"请输入数据"<<i<<endl;
		cin>>m[i];
	}
	system("pause");

	int choice2;

	Allsort test(m,scale+1);
	cout<<"原始数据:"<<endl;
	test.PrintData();
	do
	{
		cout<<"**********请选择:****************"<<endl;
		cout<<"**********1直接插入排序****************"<<endl;
		cout<<"**********2冒泡排序****************"<<endl;
		cout<<"**********3简单选择排序****************"<<endl;
		cout<<"**********4希尔排序****************"<<endl;
		cout<<"**********5折半插入排序****************"<<endl;
		cout<<"**********6快速排序****************"<<endl;
		cout<<"**********7堆排序****************"<<endl;
		cout<<"**********8归并排序****************"<<endl;
		cout<<"**********9基数排序****************"<<endl;
		cout<<"**********0返回****************"<<endl;


		cin>>choice2;
		switch(choice2)
		{
		case 1:{test.Reset();test.InsertSort(g_nFinished,test.m_nLen);test.PrintData();break;}
		case 2:{test.Reset();test.BubbleSort(g_nFinished,test.m_nLen);test.PrintData();break;}
		case 3:{test.Reset();test.SelectSort(g_nFinished,test.m_nLen);test.PrintData();break;}
		case 4:{test.Reset();test.ShellSort(g_nFinished,test.m_nLen);test.PrintData();break;}
		case 5:{test.Reset();test.BinaryInsertSort(g_nFinished,test.m_nLen);test.PrintData();break;}
		case 6:{test.Reset();test.QuickSort(g_nFinished,0,test.m_nLen-1);test.PrintData();break;}
		case 7:{test.Reset();test.HeapSort(g_nFinished,test.m_nLen);test.PrintData();break;}
		case 8:{
			test.Reset();for(int i=1;i<test.m_nLen;i++)
			{
				g_nTemp1[i]=g_nOriginal[i];
				g_nTemp2[i]=g_nOriginal[i];
			}

			test.MergeSort2(g_nTemp1,g_nFinished,g_nTemp2,0,test.m_nLen-1);test.PrintData();break;}
		case 9:{test.Reset();test.BinaryInsertSort(g_nFinished,test.m_nLen-1);test.PrintData();break;}

		default:break;
		}
	}while(choice2);






}
void random();


int _tmain(int argc, _TCHAR* argv[])
{


	int choice;
	cout<<"**********九种排序算法************Code by 黄皓东 软件工程6班 200631000608\n"<<endl;
	do
	{
		cout<<"**********请选择:****************"<<endl;
		cout<<"**********1用户自定义输入数据测试****************"<<endl;
		cout<<"**********2随机数测试****************"<<endl;
		cout<<"**********0退出****************"<<endl;
		cout<<""<<endl;


		cin>>choice;
		switch(choice)
		{
		case 1: inputmode();break;
		case 2: random();break;

		default:break;
		}
	}while(choice);






	/*int m[MaxLen+10];
	for(int i=0;i<MaxLen;i++)
	{
	m[i]=rand()%100;
	}



	Allsort test(m,MaxLen+1);

	test.PrintData();
	test.InsertSort(g_nFinished,test.m_nLen);
	test.PrintData();

	test.Reset();

	test.ShellSort(g_nFinished,test.m_nLen);
	test.PrintData();
	test.Reset();

	test.QuickSort(g_nFinished,0,test.m_nLen-1);

	test.PrintData();
	test.Reset();

	test.HeapSort(g_nFinished,test.m_nLen);

	test.PrintData();
	test.Reset();
	int g_nTemp1[MaxLen+10],g_nTemp2[MaxLen+10];
	for(int i=1;i<test.m_nLen;i++)
	{
	g_nTemp1[i]=g_nOriginal[i];
	g_nTemp2[i]=g_nOriginal[i];
	}//create two temporary arrays 

	test.MergeSort2(g_nTemp1,g_nFinished,g_nTemp2,0,test.m_nLen-1);

	test.PrintData();
	cout<<"binary"<<endl;
	test.Reset();
	test.BinaryInsertSort(g_nFinished,test.m_nLen-1);
	test.PrintData();
	cout<<"Radix"<<endl;
	test.Reset();
	test.RadixSort(g_nFinished,test.m_nLen,5);
	test.PrintData();*/
	system("pause");
	return 0;
}
void random()
{
	cout<<"请输入随机数据的规模:"<<endl;
    
	int scale;
	cin>>scale;
	for(int i=0;i<scale;i++)
	{
		m[i]=rand()%10000;
	}
	system("pause");

	int choice2;

	Allsort test(m,scale+1);
	cout<<"原始数据:"<<endl;
	test.PrintData();
	do
	{
		cout<<"**********请选择:****************"<<endl;
		cout<<"**********1直接插入排序****************"<<endl;
		cout<<"**********2冒泡排序****************"<<endl;
		cout<<"**********3简单选择排序****************"<<endl;
		cout<<"**********4希尔排序****************"<<endl;
		cout<<"**********5折半插入排序****************"<<endl;
		cout<<"**********6快速排序****************"<<endl;
		cout<<"**********7堆排序****************"<<endl;
		cout<<"**********8归并排序****************"<<endl;
		cout<<"**********9基数排序****************"<<endl;
		cout<<"**********0返回****************"<<endl;


		cin>>choice2;
		switch(choice2)
		{
		case 1:{test.Reset();test.InsertSort(g_nFinished,test.m_nLen);test.PrintData();break;}
		case 2:{test.Reset();test.BubbleSort(g_nFinished,test.m_nLen);test.PrintData();break;}
		case 3:{test.Reset();test.SelectSort(g_nFinished,test.m_nLen);test.PrintData();break;}
		case 4:{test.Reset();test.ShellSort(g_nFinished,test.m_nLen);test.PrintData();break;}
		case 5:{test.Reset();test.BinaryInsertSort(g_nFinished,test.m_nLen);test.PrintData();break;}
		case 6:{test.Reset();test.QuickSort(g_nFinished,0,test.m_nLen-1);test.PrintData();break;}
		case 7:{test.Reset();test.HeapSort(g_nFinished,test.m_nLen);test.PrintData();break;}
		case 8:{
			test.Reset();for(int i=1;i<test.m_nLen;i++)
			{
				g_nTemp1[i]=g_nOriginal[i];
				g_nTemp2[i]=g_nOriginal[i];
			}

			test.MergeSort2(g_nTemp1,g_nFinished,g_nTemp2,0,test.m_nLen-1);test.PrintData();break;}
		case 9:{test.Reset();test.BinaryInsertSort(g_nFinished,test.m_nLen-1);test.PrintData();break;}

		default:break;
		}
	}while(choice2);






}

⌨️ 快捷键说明

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