Problem z quicksortem

0

Czesc,

mam prosbe czy ktos moze mi wytlumaczyc dlaczego moj quicksort nie dziala ?

#include<conio.h>
#include <iostream>
#include <cstdlib>
#include <ctime>
int x[] = {9,3,2,5,8,7,1,4};
    void Swap(int i, int j){
         int temp;
         temp = x[i];
         x[i] = x[j];
         x[j] = temp;
         }


int random(int min, int max)
    {
    return (int)((max - min) * rand()/(float)RAND_MAX + min);
    }
    
void QuickSort(int iLowerBound, int iUpperBound){
    int i, m;
    
    if(iLowerBound >= iUpperBound)
    return;

    Swap(iLowerBound, random(iLowerBound, iUpperBound));
        m = iLowerBound;
        for(i=iLowerBound+1; i<=iUpperBound; i++)
        if(x[i] < x[iLowerBound])
        Swap(++m, i);
        Swap(iLowerBound, m);

QuickSort(iLowerBound, m-1);

QuickSort(m+1, iUpperBound);



}

int main (void){
    for(int i=0;i<8;i++)
    printf("|%d", x[i] );
    printf("\n");
QuickSort(0,4);
    for(int i=0;i<8;i++)
    printf("|%d", x[i] );

getch();

return 0;
}

Dziekuje za jakakolwiek podpowiedz...

0

void Swap(int i, int j){
int temp;
temp = x[i];
x[i] = x[j];
x[j] = temp;
}

to nic nie robi.

0

if(x[i] < x[iLowerBound])
Swap(++m, i);
Swap(iLowerBound, m);

if (x[i] < x[m])
{
  Swap(m+1,i);
  Swap(m,m+1);
  m++;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1