Sort 정렬 소스좀 봐주세요
꽃여름
각 sort 의 소스좀 봐주세요selection sort , insertion sort , bubble sort 이 세가지 정렬을 즉 case 문으로 선택하여
각 정렬별 걸리는 시간을 출력하게 소스를 짰는데 에러는 없이 나왔는데 출력인다괴 오류뜨면서
종료가 되네요. 머가 잘못되었는지 어떻게 고치면 되는지 좀 알려주세요질문 내용 :
#include stdio.h
#include stdlib.h
#include time.h
#define max 30000
void selection_sort();
void insertion_sort();
void bubble_sort();
int data[max];
int in;
int i,j, tmp, least;
clock_t start, end;
int main()
{
srand(time(null));
for(i=0; imax; i++)
data[i] = rand()%rand_max;
while(1)
{
printf(****** menu ****** \n);
printf(1. selection_sort \n);
printf(2. insertion_sort \n);
printf(3. bubble_sort \n);
printf(input = );
scanf(%d, &in);
switch(in) {
case 1:
selection_sort();
break;
case 2:
insertion_sort();
break;
case 3:
bubble_sort();
default:
break;
}
}
}
void selection_sort(int data[],int n)
{
start = clock();
for(i=0; imax-1; i++)
{
least = i;
for(j=i+1; jmax;j++)
{
if(data[least] data[j])
least = j;
}
tmp = data[i];
data[i] = data[least];
data[least] = tmp;
}
end = clock();
printf(\nselection sort = %d\n, end-start);
}
void insertion_sort(int ins[], int n)
{
int i, j, key;
start = clock();
for(i=1; in; i++) {
key = ins[i];
for(j=i-1; j=0 && ins[j]key; j--)
ins[j+1] = ins[j];
ins[j+1] = key;
}
end= clock();
printf(\ninsertion sort = %d\n, end-start);
}
void bubble_sort(int bub[], int n)
{
int i, j, temp;
start = clock();
for(i=n-1; i0; i--)
for(j=0; ji; j++)
if(bub[j]bub[j+1]) {
temp = bub[j];
bub[j] = bub[j+1];
bub[j+1] = temp;
}
end= clock();
printf(\nbubble sort = %d\n, end-start);
}