Witam!
Napisałem program sortujący wygenerowaną tablicę. Czy moglibyście powiedzieć mi co jest w kodzie nie tak, że nie sortuje poprawnie? Bardzo proszę o pomoc.
KOD:
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int podziel(int *A, int p, int k){
int s=A[p];
int i=p, j=k, t;
do{
if(A[i]>=s){
do{
if(A[j]<s){
t=A[i]; A[i]=A[j]; A[j]=t;
break;
}
j--;
}while(i<j);
}
i++;
}while(i<j);
return i;
}
void QS(int *A, int p, int k){
if(p!=k){
int is=podziel(A,p,k);
QS(A,p,is-1);
QS(A,is,k);
}
}
void main(){
int A[10], i, is;
srand((unsigned)time(NULL));
cout<<"Wygenerowana tablica:\nA = [ ";
for(i=0;i<10;i++){
A[i]=rand()%41; // generujemy liczby losowe w zakresie 0-40
cout<<A[i]<<" ";
}
cout<<"]\n";
is=podziel(A,0,9);
cout<<"Podzielona tablica:\nA = [ ";
for(i=0;i<10;i++){
cout<<A[i]<<" ";
}
cout<<"]\nMiejsce podzialu: "<<is<<endl;
QS(A,0,9);
cout<<"Posortowana tablica:\nA = [ ";
for(i=0;i<10;i++){
cout<<A[i]<<" ";
}
cout<<"]\n";
getchar();
}
Bardzo proszę o pomoc i pozdrawiam
Mikuleshi