📄 allkindsofsort.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 + -