#include <stdio.h>
#include <conio.h>
int *qs(int*,int,int);
int partition(int*,int,int);
void main()
{
int arr[]={60,65,70,75,80,55,50,45,40};
int p=0,q=8;
int *sa;
clrscr();
sa=qs(arr,p,q);
printf("\n After applying quick sort the array will be::\n");
while(p<=q)
{
printf(" %d",*sa);
sa++;
p++;
}
getch();
}
int *qs(int *arr,int p,int q)
{
int pos;
if(p==q)
{
return(arr);
}
else
{
pos=partition(arr,p,q);
qs(arr,p,pos-1);
qs(arr,pos+1,q);
return(arr);
}
}
int partition(int *arr,int p,int q)
{
int x,i,j,temp;
x=arr[p];
i=p;
for(j=p+1;j<=q;j++)
{
if(arr[j]<=x)
{
i=i+1;
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
temp=arr[i];
arr[i]=arr[p];
arr[p]=temp;
return i;
}
이 프로그램은 나누기 및 정복 알고리즘을 사용한 빠른 정렬 용입니다. 터보 C++ 3.0을 사용하여이 코드를 컴파일하는 동안 오류 메시지가 표시되지 않지만 실행 중에는 콘솔의 검은 색 화면 만 표시됩니다. 여러 번 시도했지만 실수를 찾을 수 없습니다.컴파일 오류가없고 터보 C++ 3.0에 출력이 없습니다
그리고 디버거에서 어떻게됩니까? 거의 확실하게 어딘가에 무한 루프가 있습니다. – trojanfoe
GCC를 사용하십시오. Turbo C 및 Turbo C++는 dinos에서 사용되었습니다. 이제 그들은 멸종되었으며이 컴파일러도 마찬가지입니다. –
ideone은 segfault를 제공합니다. – chris