数组排序以及所需时间。。

来源:互联网 发布:choice数据 价格 编辑:程序博客网 时间:2024/06/07 01:12

分别调用冒泡排序和选择排序,比较两种算法哪个更快,计算算法需要的时间。。

#include<iostream>#include<fstream>#include<cstdlib>#include<ctime>const int number=5000;using namespace std;int main(){       long t1,t2;//     srand(time(0));       int a[number];//     double sum=0;//     double ave=0;       ifstream infile("123.txt");//     infile.open("123.txt");       if(!infile) { cerr<<"file is not open.."; exit(1); } for(int i=0;i<number;i++){//cout<<"输入第";//cout.width(2);//cout<<i+1<<"名学生成绩: ";infile>>a[i];//cout<<a[i]<<endl;}infile.close();int num=0;t1=time(0);for(int i=0;i<number-1;i++)for(int j=0;j<number-1-i;j++){if(a[j]<a[j+1]){num=a[j];a[j]=a[j+1];a[j+1]=num;}}t2=time(0);for(int i=0;i<number;i++){//cout<<a[i]<<".";}cout<<endl;cout<<"冒泡法耗时为:"<<t2-t1<<endl;        cout<<endl;        cout<<endl;ifstream infile2("123.txt");if(!infile2){cerr<<"file is not open!!!"<<endl;exit(1);}for(int i=0;i<number;i++){//cout<<"输入第";//cout.width(2);//cout<<i+1<<"名学生成绩: ";infile2>>a[i];//cout<<a[i]<<endl;}infile.close();int num2;t1=time(0);for(int i=0;i<number-1;i++)for(int j=i+1;j<number;j++){if(a[i]<a[j]){num2=a[i];a[i]=a[j];a[j]=num2;}}t2=time(0);for(int i=0;i<number;i++){//cout<<a[i]<<".";}cout<<endl;cout<<"选择法耗时为:"<<t2-t1<<endl;   return 0;}
这个程序统计时间只能统计整秒数,太愁人。把数据加大了不知道多少倍之后,冒泡法才显示程序执行时间为1.。而且由于机器本身的问题,有的时候还是两个程序的运行时间都是0.竟然还有一次冒泡法的时间为0,选择法的时间为1.。应该找一个可以计算时间更精确的方法。。。。

原创粉丝点击