퀵정렬 알고리즘 질문입니당
늘빈
질문 제목 :퀵 정렬알고리즘 정렬
sorted data출력질문 내용 : #include stdio.h
int a[] = { 10, 4, 7, 1, -2, 12, 28, 66, 9, 3, 5, 7, 6, 21, 11 };
void print_data(int a[], int n)
{
int i;
for(i = 0; i n; i++)
printf( %d , a[i]);
printf(\n);
}
void swap(int a[], int index1, int index2)
{
int temp = a[index1];
a[index1] = a[index2];
a[index2] = temp;
}
int partition(int a[], int l, int r)
{
int pivot = a[l] ;
int low = l+1 ;
int high = r ;
while(low = high)
{
while(pivot a[low])
low++;
while(pivot a[high])
high--;
if(low = high)
swap(a, low, high);
}
swap(a, l, high);
return high ;
}
void quick_sort(int a[], int l, int r)
{
if(l r)
{
int pivot = partition(a, l, r);
quick_sort(a, l, pivot-1);
quick_sort(a, pivot+1, r);
}
else if(l = r)
{
}
return 0 ;
}
int main(void)
{
int n;
// n is the array size
n = sizeof (a) / sizeof(int);
printf(input data : );
print_data(a, n);
// sort the elements of array a[] in ascending order
quick_sort(a, 1, n);
printf(\n\nsorted data : ); //출력 안되는 부분
print_data(a, n);
}
이 코드를 돌렸을 때 input data 만 출력이 되고
sorted data 는 출력이 안됩니다 ㅠㅠ
어떻게 하면 sorted data도 출력시킬 수 있을까요..?
-
갤쓰리
돌려보니 무한루프 들어가네요.
출력부분의 문제가 아니고 그 전에 소팅하는 부분에서 먹어버린겁니다.
알고리즘을 다시 한번 체크해보세요-