poniedziałek, 3 listopada 2008

Sortowanie bąbelkowe - C++

Podane poniżej sortowanie przyjmuje 2 wartości.
*tab jest to wskaźnik na tablicę
n to ilość elementów w tablicy
void sortuj (int *tab, int n)
{
for (int j=0; j < n-1; j++)
{
for (int i=0; i < n-j-1; i++)
{
if (tab[i] > tab[i+1])
{
swap(tab[i], tab[i+1]);
}
}
}
}

Pierwsza pętla for jest odpowiedzialna za przejście przez tablicę n razy. (Tablica ma elementy ponumerowane od 0 do n-1). Druga pętla pilnuje by zostało wykonanych w każdym przejściu tablicy dokładnie n-j-1 porównań. (j to licznik przejść przez tablice) If sprawdza czy musimy zamieniać 2 sąsiadujące elementy czy może są już w dobrej kolejności. Swap to funkcja napisana w poprzednich notach zamieniająca 2 elementy.
Przykładowe użycie funkcji sortującej dla tablicy o nazwie array i liczbie elementów wynoszącej 10 wygląda następująco:
sortuj(array, 10);