Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Niedziałający QuickSort

Ostatnio zmodyfikowano 2015-11-19 23:32
Autor Wiadomość
0laf5on
Temat założony przez niniejszego użytkownika
Niedziałający QuickSort
» 2015-11-19 22:43:39
Cześć,
Po napisaniu quicksort'a zobaczyłem, że algorytm sortuje jedynie niektóre z moich liczb z tablicy. Prosiłbym o pomoc, w celu zweryfikowania mojego kodu i ewentualne wskazanie błędu.
Z góry dziękuje.

void quicksort (int tab [], int left, int right)
{
    if (left < right)
    {
        int i=left;
        for (int j=left+1; j<=right; j++)
        {
            if (tab[left]>tab[j]) i++;
            {
                swap (tab [i], tab[j]);
            }
        }
        swap (tab[left], tab[i]);
        quicksort (tab, left, i-1);
        quicksort (tab, i+1, right);
    }
}
Biorąc np. tablicę 6 elementową {6,3,4,7,2,1} po wywołaniu mam {3,1,7,2,6,4}.


[/i]
P-140408
carlosmay
» 2015-11-19 23:25:35
C/C++
if( tab[ left ] > tab[ j ] ) i++; // tutaj konczy sie instrukcja if

{
    swap( tab[ i ], tab[ j ] ); // więc to nie działa kiedy ma działać.
}
 
P-140412
0laf5on
Temat założony przez niniejszego użytkownika
» 2015-11-19 23:32:49
Ok, wszystko jasne, dzięki za pomoc.
P-140413
« 1 »
  Strona 1 z 1