Cześć,
zajmuję się właśnie sortowaniem bąbelkowym w ANSI C, ale kompletnie nie wiem o co chodzi w tym. Sam algorytm jest prosty, jednak ze stworzeniem kodu już trudniej. Nawet nie za bardzo potrafię go odczytać prawidłowo ;(
Znalazłem na wikipedii kod w ANSI C dotyczący sortowania bąbelkowego:
void boublesort(int table[], int size)
{
int i, j, temp;
for (i = 0; i<size; i++)
for (j=0; j<size-1; j++)
{
if (table[j] > table[j+1])
{
temp = table[j+1];
table[j+1] = table[j];
table[j] = temp;
}
}
}
Jestem na prawdę laikiem, jeśli ktoś mógłby "wykomentować" kod tak żeby w każdej linii było wiadomo co się dzieje. Żeby nie było że czekam na gotowca, sam trochę popracowałem, sądzę że mnie poprawicie jeśli moje rozumowanie będzie złe.
Deklarujemy funkcję void, która przyjmuje jako argumenty zmienną w postaci tablicy jednowymiarowej tab o nieokreślonej liczbie elementów i jakąś zmienną size, która w ogóle nic mi nie mówi.
A potem to już czarna magia... zaczynamy jeździć po tablicy forem na początku od pierwszego indeksu (i=0). Rozumiem że za zmienną j odpowiada wartość elementu o indeksie i ? Inaczej "i" to indeks tablicy a "j" wartość przechowywana w dowolnym indeksie.
Do czego służy ta funkcja temp, i jak zachodzi zamiana miejsc wartości ?
Reszta, po prostu kompletna magia.
Za wszelkie podpowiedzi z góry dziękuję!