📄 main.cpp
字号:
#include <time.h>
#include <stdlib.h>
#include "Sort.h"
#include "InsertSort.h"
#include "HeapSort.h"
#include "SelectSort.h"
#include "BubbleSort.h"
#include "QuickSort.h"
#include "ShellSort.h"
#include "MergeSort.h"
#include "DichotomySort.h"
#include <iostream.h>
void copyArray(int *A,int *B,int h)//保存原来数组
{
for(int i = 0 ; i < h ; i++)
{
A[i]=B[i];
}
}
void main()
{
const int n = 100000;
int m = n;
int *array1,*array2,*array3;
int *copy;
array1 = new int[n];
array2 = new int[n];
array3 = new int[n];
copy=new int[n];
srand(time(0));
HeapSort<int> H_Sort;
BubbleSort<int> B_Sort;
InsertSort<int> I_Sort;
QuickSort<int> Q_Sort;
ShellSort<int> E_Sort;
SelectSort<int> S_Sort;
DichotomySort<int> D_Sort;
for (int i = 0; i < n; i++)
{
array1[i] = rand() % 9000 + 1000;
array2[i] = i+1;
array3[i] = m;
m--;
}
char ch;
while(true)
{
cout<<"请输入数组的形式:乱序(L)顺序(S)逆序(N)"<<endl;
cin>>ch;
if(ch == 'l')
{
/*cout<<"++++++++++++++原数组+++++++++++++++"<<endl;
for (int k = 0 ; k < n ; k++)
{
if(k % 10 == 0)
cout<<endl;
copy[k]=array1[k];
cout<<array1[k]<<" ";
}
cout<<endl;*/
H_Sort.Sorts(array1,n);
H_Sort.print_h(array1,n);
cout<<endl<<endl;
copyArray(array1,copy,n);
B_Sort.Sorts(array1,n);
B_Sort.print_b(array1,n);
cout<<endl<<endl;
copyArray(array1,copy,n);
I_Sort.Sorts(array1,n);
I_Sort.print_i(array1,n);
cout<<endl<<endl;
copyArray(array1,copy,n);
Q_Sort.Sorts(array1,0,n-1,n);
Q_Sort.print_q(array1,n);
cout<<endl<<endl;
copyArray(array1,copy,n);
E_Sort.Sorts(array1,n);
E_Sort.print_e(array1,n);
cout<<endl<<endl;
copyArray(array1,copy,n);
S_Sort.Sorts(array1,n);
S_Sort.print_s(array1,n);
cout<<endl<<endl;
/*copyArray(array1,copy,n);
MergeSort<int> M_Sort;
M_Sort.Sorts(array1,array1,0,n-1);
M_Sort.print_m(array1,n);
cout<<endl<<endl;*/
copyArray(array1,copy,n);
D_Sort.Sorts(array1,n);
D_Sort.print_d(array1,n);
cout<<endl<<endl;
}
else if(ch == 's')
{
cout<<"++++++++++++++原数组+++++++++++++++"<<endl;
for (int k = 0 ; k < n ; k++)
{
if(k % 10 == 0)
cout<<endl;
copy[k]=array2[k];
cout<<array2[k]<<" ";
}
cout<<endl;
//HeapSort<int> H_Sort;
H_Sort.Sorts(array2,n);
H_Sort.print_h(array2,n);
cout<<endl<<endl;
copyArray(array2,copy,n);
//BubbleSort<int> B_Sort;
B_Sort.Sorts(array2,n);
B_Sort.print_b(array2,n);
cout<<endl<<endl;
copyArray(array2,copy,n);
//InsertSort<int> I_Sort;
I_Sort.Sorts(array2,n);
I_Sort.print_i(array2,n);
cout<<endl<<endl;
copyArray(array2,copy,n);
//QuickSort<int> Q_Sort;
Q_Sort.Sorts(array2,0,n-1,n);
Q_Sort.print_q(array2,n);
cout<<endl<<endl;
copyArray(array2,copy,n);
//ShellSort<int> E_Sort;
E_Sort.Sorts(array2,n);
E_Sort.print_e(array2,n);
cout<<endl<<endl;
copyArray(array2,copy,n);
//SelectSort<int> S_Sort;
S_Sort.Sorts(array2,n);
S_Sort.print_s(array2,n);
cout<<endl<<endl;
copyArray(array2,copy,n);
//DichotomySort<int> D_Sort;
D_Sort.Sorts(array2,n);
D_Sort.print_d(array2,n);
cout<<endl<<endl;
}
else if(ch == 'n')
{
cout<<"++++++++++++++原数组+++++++++++++++"<<endl;
for (int k = 0 ; k < n ; k++)
{
if(k % 10 == 0)
cout<<endl;
copy[k]=array3[k];
cout<<array3[k]<<" ";
}
cout<<endl;
//HeapSort<int> H_Sort;
H_Sort.Sorts(array3,n);
H_Sort.print_h(array3,n);
cout<<endl<<endl;
copyArray(array3,copy,n);
//BubbleSort<int> B_Sort;
B_Sort.Sorts(array3,n);
B_Sort.print_b(array3,n);
cout<<endl<<endl;
copyArray(array3,copy,n);
//InsertSort<int> I_Sort;
I_Sort.Sorts(array3,n);
I_Sort.print_i(array3,n);
cout<<endl<<endl;
copyArray(array3,copy,n);
//QuickSort<int> Q_Sort;
Q_Sort.Sorts(array3,0,n-1,n);
Q_Sort.print_q(array3,n);
cout<<endl<<endl;
copyArray(array3,copy,n);
//ShellSort<int> E_Sort;
E_Sort.Sorts(array3,n);
E_Sort.print_e(array3,n);
cout<<endl<<endl;
copyArray(array3,copy,n);
//SelectSort<int> S_Sort;
S_Sort.Sorts(array3,n);
S_Sort.print_s(array3,n);
cout<<endl<<endl;
copyArray(array3,copy,n);
//DichotomySort<int> D_Sort;
D_Sort.Sorts(array3,n);
D_Sort.print_d(array3,n);
cout<<endl<<endl;
}
else
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -