Mam problem, napisalem quicksorta i on zle sortuje tj. przewaznie okolo 2 elementy sa zle wstawione
z gory dzieki za pomoc
#include <stdio.h>
#include <time.h>
#define N 10
void quicksort(int t[], int p, int r);
int partition(int t[], int p, int q);
int main(){
srand(time(0));
int t[N];
int i=0;
for (i; i<N; ++i)
t[i]=rand()%43;
for (i=0; i<N; ++i)
printf("%d\t", t[i]);
quicksort(t,0,N);
printf("\n\n\n");
for (i=0; i<N; ++i)
printf("%d\t", t[i]);
return 0;
}
void quicksort(int t[], int p, int r){
if (p<r){
int q=partition(t,p,r);
quicksort(t,p,q-1);
quicksort(t,q+1,r);
}
}
/////////////////////////////////////////////
int partition(int t[], int p, int r){
int x=t[r-1];
int i=p-1;
int j;
for (j=p; j<=r-2; ++j){
if (t[j] <= x){
++i;
int k=t[i];
t[i]=t[j];
t[j]=k;
}
}
int g=t[i+1];
t[i+1]=t[r-1];
t[r-1]=g;
return i+1;
}