📄 shiyan4.cpp
字号:
#include<cstdlib>
//#include<stdio.h>
//#include<stdlib.h>
#include<iostream>
#include<time.h>
using namespace std;
int const N=1000;
int const m=1000;
//产生N个随机数
void suijishu(int a[],int b[])
{
int i;
cout<<"产生随机数的个数"<<N<<endl;
srand((unsigned)time(NULL));
for(i=0;i<N;i++)
a[i]=b[i]=rand()%1000;
}
//冒泡排序法
void maopao(int a[])
{
int i,j,t;
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
//快速排序法
void kuaisu(int data[], int low, int high)
{
int i, j, pivot;
if (low < high)
{
pivot=data[low];
i=low;
j=high;
while(i<j)
{
while (i<j && data[j]>=pivot)
j--;
if(i<j)
data[i++]=data[j];
while (i<j && data[i]<=pivot)
i++;
if(i<j)
data[j--]=data[i];
}
data[i]=pivot;
kuaisu(data,low,i-1);
kuaisu(data,i+1,high);
}
}
//主程序
void main()
{
clock_t t1,t2,t3,t4;
int a[N],b[N],i;
suijishu(a,b);
cout<<"产生的随机数:"<<endl;
for(i=0;i<N;i++)
cout<<a[i]<<" ";
cout<<endl;
t1=clock();
for(int j=0;j<m;j++)
maopao(a);
t2=clock();
cout<<"冒泡排序后:"<<endl;
for(i=0;i<N;i++)
cout<<a[i]<<",";
cout<<endl;
t3=clock();
for(j=0;j<m;j++)
kuaisu(b,0,N-1);
t4=clock();
cout<<"快速排序后:"<<endl;
for(i=0;i<N;i++)
cout<<b[i]<<",";
cout<<endl;
cout<<"冒泡消耗时间(s):"<<(long double)((1.0/m)*(t2-t1))/CLOCKS_PER_SEC<<"s"<<endl;
cout<<"快速消耗时间(s):"<<(long double)((1.0/m)*(t4-t3))/CLOCKS_PER_SEC<<"s"<<endl;
cout<<"冒泡消耗时间"<<(long double)((1.0/m)*(t2-t1))<<endl;
cout<<"快速消耗时间"<<(long double)((1.0/m)*(t4-t3))<<endl;
cout<<"冒泡消耗时间"<<((1.0/m)*(t2-t1))<<endl;
cout<<"快速消耗时间"<<((1.0/m)*(t4-t3))<<endl;
cout<<CLOCKS_PER_SEC<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -