Код быстрой сортировки приведен неверно. Может кто-нибудь сказать, что не так?Quicksort с использованием одного контура
#include <stdio.h>
#include <stdlib.h>
#define MAX 30
int b[MAX];
void print(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d\t",a[i]);
}
printf("\n");
}
int party(int a[],int p,int q)
{
int pivot=a[p];
int t=a[p];
a[p]=a[q];
a[q]=t;
int i,j,k,store=p;
for(i=p;i<=q-1;i++)
{
if(a[i]<=pivot)
{
t = a[i];
a[i] = a[store];
a[store] = t;store++;}
}
t = a[store];
a[store] = a[q];
a[q] = a[store];
return store;
}
void quicksort(int a[],int p,int q)
{
if(p>=q)
{
return;
}
int r=party(a,p,q);
quicksort(a,p,r-1);
quicksort(a,r+1,q);
}
int main()
{
printf("Enter No. oF elements for sorting.\n");
int i,j,k,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Element %d\t",i+1); scanf("%d",&b[i]);
}
print(b,n);
quicksort(b,0,n-1);
print(b,n);
return 0;
}
EDIT: Просто провел несколько минут, и сделал некоторые основные отступа вместо того, чтобы просить автора, чтобы сделать это. Я мог бы поставить правильные имена переменных, но так как ответ ответил, что все в порядке.
Попробуйте отступ и формат для вопроса. Также попробуйте использовать отладчик –
. С какой ошибкой вы собрали этот код? – Sarge
Ошибка при компиляции, она запускается и дает неправильный вывод. –