각각의 정렬 실행시간.
얀별
질문 제목 : 각각의 정렬함수(버블,삽입,선택)의 실행시간 알아보기.제대로 시간이 측정이 안됨.질문 내용 : 각각의 함수를 따로따로 실행시켯을 시 시간측정이 제대로 되나 한꺼번에 받으려 실행 시켰더니
삽입정렬 함수만 0초가 나오고 나머지 함수는 제대로 측정이 되네여...하나씩 하니씩 검사해봤더니
버블함수에서 if문의 {}를 안하면 삽입정렬 시간이 나오는데 버블함수 시간은 잘못측정이 되고,{}를 하면
버블,선택만 시간이 제대로 나오고 삽입정렬함수는 0초가 나오느데....이기 어떻게 된영문인지..모르겠네여;;
좀 알려주세영@@~
[소스]
#includestdio.h
#includestdlib.h
#includetime.h
#define n 100000
double bubble(int date[]);
double insert(int date[]);
double select(int date[]);
void main()
{
int numbers[n];
srand(time(null));
for(int x=0;xn;x++){
numbers[x]=rand();
}
printf(processing...\n);
printf(bubble sort took %.7lf seconds\n,bubble(numbers));
printf(insert sort took %.7lf seconds\n,insert(numbers));
printf(select sort took %.7lf seconds\n,select(numbers));
}
double bubble(int date[])
{
int temp;
clock_t start,finish;
start=clock();
for(int x=0;xn-1;x++){
for(int y=n-1;yx;y--){
if(date[y]date[y-1]) {--문제의 원인인것 가틈.
temp=date[y];
date[y]=date[y-1];
date[y-1]=temp;
}
}
}finish=clock();
return (double)(finish-start)/clocks_per_sec;
}
double insert(int date[]) --제대로 측정되지 않는 함수.
{
int temp;
clock_t start,finish;
start=clock();
for(int x=1;xn;x++){
for(int y=x-1;y=0;y--){
if(date[y]date[y+1]){
temp=date[y];
date[y]=date[y+1];
date[y+1]=temp;
}
else
break;
}
}finish=clock();
return (double)(finish-start)/clocks_per_sec;
}
double select(int date[])
{
int temp,small,n;
clock_t start,finish;
start=clock();
for(int x=0;xn-1;x++){
small=date[x];
n=x;
for(int y=x+1;yn;y++){
if(smalldate[y]){
small=date[y];
n=y;
}
}
temp=date[n];
date[n]=date[x];
date[x]=temp;
}finish=clock();
return (double)(finish-start)/clocks_per_sec;
}