break;
case2:
for(i=SIZE;i>0;i--)A[i-1]=SIZE-i;returnA;//逆序
break;
case3:
srand(time(NULL));
for(i=0;ibreak;
default:
cout<<"error"<}
}
template
voidSwap(T&a,T&b)//交换2个元素
{
Ttemp=a;
a=b;
b=temp;
}
template
voidMenu:
:
bubbleSort()
{
cout<<"冒泡排序"<this->childmenu();
T*A;
doubleduration;
clock_tstart,finish;
start=clock();
cout<<"ok"<for(inti=0;i{
A=producedate(b);
BubbleSort(A,SIZE);
delete[]A;
}
finish=clock();
duration=(double)(finish-start)/CLOCKS_PER_SEC;
//printout(A,SIZE);
cout<<"用时:
"<system("pause");
//delete[]A;
this->bubbleSort();
}/*ok*/
template
voidMenu:
:
insertSort()
{
cout<<"直接插入排序"<this->childmenu();
T*A;
doubleduration;
//A=producedate(b);
//if(A==NULL){cout<<"error";delete[]A;this->insertSort();}
//printout(A,SIZE);
clock_tstart,finish;
start=clock();
cout<<"ok"<for(inti=0;i{
A=producedate(b);
InsertSort(A,SIZE);
delete[]A;
}
finish=clock();
duration=(double)(finish-start)/CLOCKS_PER_SEC;
//printout(A,SIZE);
cout<<"用时:
"<system("pause");
//delete[]A;
this->insertSort();
}
template
voidMenu:
:
mergeSort()
{
//this->childmenu();
cout<<"合并排序"<cout<<"直接用随机数据测试"<T*A;
doubleduration;
clock_tstart,finish;
start=clock();
cout<<"ok"<for(inti=0;i{
A=producedate(3);
MergeSort(A,SIZE);
delete[]A;
}
finish=clock();
duration=(double)(finish-start)/CLOCKS_PER_SEC;
//printout(A,SIZE);
cout<<"用时:
"<system("pause");
//delete[]A;
this->printmenu();
}/*ok*/
template
voidMenu:
:
quickSort()
{
this->childmenu2();
T*A;
doubleduration;
clock_tstart,finish;
if(c==1)
{
cout<<"原始快速排序"<cout<<"直接用随机数据测试"<start=clock();
cout<<"ok"<for(inti=0;i{
A=producedate(3);
quick(A,SIZE);
delete[]A;
}
finish=clock();
duration=(double)(finish-start)/CLOCKS_PER_SEC;
cout<<"用时:
"<system("pause");this->quickSort();
}
elseif(c==2)
{
cout<<"改进的快速排序"<cout<<"直接用随机数据测试"</*A=producedate(3);
printout(A,SIZE);
quick(A,SIZE);
printout(A,SIZE);
delete[]A;
this->printmenu();
*/
//T*A;
start=clock();
cout<<"ok"<for(inti=0;i{
A=producedate(3);
quick(A,SIZE);
delete[]A;
}
finish=clock();
duration=(double)(finish-start)/CLOCKS_PER_SEC;
cout<<"用时:
"<system("pause");
this->quickSort();
}
else{cout<<"error"<printmenu();}
}
template
voidMenu:
:
selectsort()
{
//this->childmenu();
cout<<"简单选择排序"<cout<<"直接用随机数据测试"<T*A;
doubleduration;
clock_tstart,finish;
start=clock();
cout<<"ok"<for(inti=0;i{
A=producedate(3);
SelectSort(A,SIZE);
delete[]A;
}
finish=clock();
duration=(double)(finish-start)/CLOCKS_PER_SEC;
//printout(A,SIZE);
cout<<"用时:
"<system("pause");
//delete[]A;
this->printmenu();
}
Mymain.cpp
#include"Menu.h"
intmain()
{
MenuMenuObj;
MenuObj.printmenu();
cout<<"okend."<return0;
}
五、实验结果
六、实验小结
(1)在编写此次程序时要熟练运用函数的递归套用
(2)在进行输入时,一定要细心,少犯没有分号,括号数目不对等低级错误,这会大大增加调试的时间。
(3)采用模块化思想,主函数尽量只放函数调用