#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;
}
Программа предназначена для быстрого сортировки с использованием алгоритма разделения и покорения. Хотя я компилирую этот код с помощью turbo C++ 3.0, я не получаю сообщение об ошибке, но при запуске я получаю только черный экран консоли. Я много раз пробовал, но не смог найти никакой ошибки.нет ошибки компиляции, но нет выхода в turbo C++ 3.0
А что происходит в отладчике? Почти наверняка бесконечный цикл где-то там ... – trojanfoe
Пожалуйста, используйте GCC. Turbo C и Turbo C++ использовали динозавры. Теперь они вымерли, и этот компилятор тоже. –
ideone дает segfault. – chris