//计算机的时间
//用clock()取得花的CPU时间,1000个CPU时间=1秒//
#include<stdio.h>
#include<time.h>
void main()
{
clock_t begin_time,end_time;
//定义了两个变量,保存程序运行开始时间和结束时间
begin_time=clock();
//记住程序开始运行时间,用了多少个CPU时间//
int i;
for (i=0;i<=1000000;i++)
;
end_time=clock();
//记录程序结束运行时间,用了多少个CPU时间//
printf("循环花了%d个CPU时间.\n\n",end_time - begin_time);
}
//实现一个秒表
//用clock()取得花的CPU时间,1000个CPU时间=1秒
#include<stdio.h>
#include<time.h>
void main()
{
clock_t t1,t2;
t1=clock();
while (1)
{
t2=clock();
if (t2-t1==1000)
{
printf("\b\b\b \b\b\b\a%d",t1/1000);
t1=t2;
}
}
}
第一次作业:冒泡排序对于一百万个随机数排序需花费多长时间
冒泡排序法
#include<stdio.h>
#define N 10
void main ()
{
int i,j,t,n;
int a[N];//定义一个数组//
printf("请输入元素的个数:\n");
scanf("%d",&n);
printf("请输入n个整数:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for( i=0 ; i< n-1 ; i++ )
{
//a[i]与其前后所有元素比较,若a[j]<a[i],则交换//
for ( j = i+1 ; j < n ; j++)
if( a[i] > a[j] )
{
t=a[i];a[i]=a[j];a[j]=t;
}
}
printf("排序后: \n");
for ( i=0 ; i<n ; i++ ) //输出n个数组元素的值//
printf(" %d ",a[i]);
printf("\n");
}
//要取得[a,b)之间的随机整数,使用(rand()%(b-a))+a
/* a[]:放置随机数的起始地址
size:要产生的随机数的个数(数组大小)
start:要产生的随机数N的范围,>=start
end:要产生的随机数N的范围,<end
*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>//头文件调用rand()取得随机数//
#define N 100000
void rand_gen(int a[],int size,int start ,int end)
{
int j,n;
srand(time(NULL));
for (j=0;j<size;j++)
{
n=rand()%(end-start)+start;
a[j]=n;
}
}
void sort (int a[], int size)
{
int i,j,t;
for ( i=0 ; i < size-1 ; i ++)
{
for ( j=i+1 ; j < size ; j++)
if ( a[i] > a[j] )
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
void main ()
{
int a[N],i;
int f;
clock_t begin_time,end_time;
begin_time=clock();
rand_gen(a,N,0,10);
/*for(i=0;i<N;i++)
{
printf("%d ",a[i]);
}*/
// printf("\n\n\n\n\n\n\n\n\n\n\n");
sort(a,N);
end_time=clock();
/*for(i=0;i<N;i++)
{
printf("%d ",a[i]);
}*/
printf("\n");
f=( end_time - begin_time )/1000;
printf("随机数排序花了%d秒",f);
}
#include<stdio.h>
#define N 100000
#define M 100000
int main ()
{
int i,j,m,n,k=0;
int a[N],b[M],c[N+M];
scanf("%d",&m);
for (i=0;i<m;i++){
scanf("%d",&a[i]);
}
scanf("%d",&n);
for (j=0;j<n;j++){
scanf("%d",&b[j]);
}
for(i=0;i<m;i++){
c[i]=a[i];
}
for(j=0;j<n;j++){
c[m+j]=b[j];
}
\
/* while ( i<m && j<n){
if (a[i]>=b[j])
c[k++]=a[i++];
else
c[k++]=b[j++];
}
while (i<m)
c[k++]=a[i++];
while (j<n)
c[k++]=b[j++];
*/
int p,q,t;
for (p=0;p<m+n-1;p++){
for (q=p+1;q<m+n;q++)
if (c[p]<c[q])
{
t=c[p];
c[p]=c[q];
c[q]=t;
}
}
for (k=0;k<m+n-1;k++)
printf("%d ",c[k]);
printf("%d",c[m+n-1]);
return 0;
}
//用clock()取得花的CPU时间,1000个CPU时间=1秒//
#include<stdio.h>
#include<time.h>
void main()
{
clock_t begin_time,end_time;
//定义了两个变量,保存程序运行开始时间和结束时间
begin_time=clock();
//记住程序开始运行时间,用了多少个CPU时间//
int i;
for (i=0;i<=1000000;i++)
;
end_time=clock();
//记录程序结束运行时间,用了多少个CPU时间//
printf("循环花了%d个CPU时间.\n\n",end_time - begin_time);
}
//实现一个秒表
//用clock()取得花的CPU时间,1000个CPU时间=1秒
#include<stdio.h>
#include<time.h>
void main()
{
clock_t t1,t2;
t1=clock();
while (1)
{
t2=clock();
if (t2-t1==1000)
{
printf("\b\b\b \b\b\b\a%d",t1/1000);
t1=t2;
}
}
}
第一次作业:冒泡排序对于一百万个随机数排序需花费多长时间
冒泡排序法
#include<stdio.h>
#define N 10
void main ()
{
int i,j,t,n;
int a[N];//定义一个数组//
printf("请输入元素的个数:\n");
scanf("%d",&n);
printf("请输入n个整数:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for( i=0 ; i< n-1 ; i++ )
{
//a[i]与其前后所有元素比较,若a[j]<a[i],则交换//
for ( j = i+1 ; j < n ; j++)
if( a[i] > a[j] )
{
t=a[i];a[i]=a[j];a[j]=t;
}
}
printf("排序后: \n");
for ( i=0 ; i<n ; i++ ) //输出n个数组元素的值//
printf(" %d ",a[i]);
printf("\n");
}
//要取得[a,b)之间的随机整数,使用(rand()%(b-a))+a
/* a[]:放置随机数的起始地址
size:要产生的随机数的个数(数组大小)
start:要产生的随机数N的范围,>=start
end:要产生的随机数N的范围,<end
*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>//头文件调用rand()取得随机数//
#define N 100000
void rand_gen(int a[],int size,int start ,int end)
{
int j,n;
srand(time(NULL));
for (j=0;j<size;j++)
{
n=rand()%(end-start)+start;
a[j]=n;
}
}
void sort (int a[], int size)
{
int i,j,t;
for ( i=0 ; i < size-1 ; i ++)
{
for ( j=i+1 ; j < size ; j++)
if ( a[i] > a[j] )
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
void main ()
{
int a[N],i;
int f;
clock_t begin_time,end_time;
begin_time=clock();
rand_gen(a,N,0,10);
/*for(i=0;i<N;i++)
{
printf("%d ",a[i]);
}*/
// printf("\n\n\n\n\n\n\n\n\n\n\n");
sort(a,N);
end_time=clock();
/*for(i=0;i<N;i++)
{
printf("%d ",a[i]);
}*/
printf("\n");
f=( end_time - begin_time )/1000;
printf("随机数排序花了%d秒",f);
}
#include<stdio.h>
#define N 100000
#define M 100000
int main ()
{
int i,j,m,n,k=0;
int a[N],b[M],c[N+M];
scanf("%d",&m);
for (i=0;i<m;i++){
scanf("%d",&a[i]);
}
scanf("%d",&n);
for (j=0;j<n;j++){
scanf("%d",&b[j]);
}
for(i=0;i<m;i++){
c[i]=a[i];
}
for(j=0;j<n;j++){
c[m+j]=b[j];
}
\
/* while ( i<m && j<n){
if (a[i]>=b[j])
c[k++]=a[i++];
else
c[k++]=b[j++];
}
while (i<m)
c[k++]=a[i++];
while (j<n)
c[k++]=b[j++];
*/
int p,q,t;
for (p=0;p<m+n-1;p++){
for (q=p+1;q<m+n;q++)
if (c[p]<c[q])
{
t=c[p];
c[p]=c[q];
c[q]=t;
}
}
for (k=0;k<m+n-1;k++)
printf("%d ",c[k]);
printf("%d",c[m+n-1]);
return 0;
}