习题四(工程名为104、源程序名为104)
参考下列程序,对习题一和习题三的程序作适当修改。通过上机运行,实验测评二种排序算法运行效率,以期在理论和实践上得出一致的结论。
⑴选择排序算法修改
#include <iostream.h>
#include <stdlib.h>
#include <iomanip.h>
#include <conio.h>
#include <time.h>
#define N 65536*2
void Selection(short[],int);
void main()
{
short A[N+1];
srand(time(NULL));
for(int i=1;i<=N;i++)A[i]=rand()%10000;
time_t t1,t2; struct tm *pt;
time(&t1);pt=gmtime(&t1);
cout<<setfill(‘0’);
cout<<“排序开始时间:”;
cout<<setw(2)<<(pt->tm_hour+8)%24<<":"<<setw(2)<tm_min<<":"<<setw(2)<tm_sec<<endl;
cout<<“SelectionSort排序中”<<flush;
for(i=1;i<=N-1;i++){
if(i%2048==0)cout<<"."<<flush;
Selection(A,i);
}
cout<<endl<<“排序结束时间:”;
time(&t2);pt=gmtime(&t2);
cout<<setw(2)<<(pt->tm_hour+8)%24<<":"<<setw(2)<tm_min<<":"<<setw(2)<tm_sec<<endl;
cout<<“排序耗费时间=”<<t2-t1<<endl;
getch();
}
// *******************************************************
// * 工 程 名:104选择.dsp *
// * 程 序 名:104选择.cpp *
// * 主要功能:选择排序法时间 * *
// * 编制时间:2019年11月21日 *
// ********************************************************
#include
#include <stdlib.h>
#include
#include <conio.h>
#include <time.h>
#define N 65536*2
using namespace std;
void SelectionSort(int A[],int i)
{
if(i>=N-1)
{
return;
}
else{
int index,j;
index=i;
for(j=i+1;j<N;j++)
{
if(A[index]>A[j])
index=j;
}
int temp;
temp=A[index];
A[index]=A[i];
A[i]=temp;
}
}
int main()
{
int A[N+1];
srand(time(NULL));
for(int i=1;i<=N;i++)A[i]=rand()%10000;
time_t t1,t2; struct tm *pt;
time(&t1);pt=gmtime(&t1);
cout<<setfill(‘0’);
cout<<“排序开始时间:”;
cout<<setw(2)<<(pt->tm_hour+8)%24<<":"<<setw(2)<tm_min<<":"<<setw(2)<tm_sec<<endl;
cout<<“SelectionSort排序中”<<flush;
for(int i=1;i<=N-1;i++){
if(i%2048==0)cout<<"."<<flush;
SelectionSort(A,i);
}
cout<<endl<<“排序结束时间:”;
time(&t2);pt=gmtime(&t2);
cout<<setw(2)<<(pt->tm_hour+8)%24<<":"<<setw(2)<tm_min<<":"<<setw(2)<tm_sec<<endl;
cout<<“排序耗费时间=”<<t2-t1<<endl;
getch();
}