Działanie tej metody polega na porównywaniu ze sobą dwóch liczb znajdującego się w ciągu znaków, z nich liczba mniejsza zostaje podstawiona pod niższą pozycję w tabeli a liczba większa pod pozycję o większym numerze. Poniżej krótka prezentacja:
tab[5] = 7;
tab[6] = 2;
Jeśli tab[5] jest większa od tab[6] to miejsce tab[6] zajmie liczba 7 a miejsce tab[5] przejdzie liczba 2. W następnym przejściu są ze sobą porównywane liczby na pozycji tab[6] oraz tab[7]. Algorytm działa, aż do momentu posortowania całego ciągu.
Program
Poniżej implementacja algorytmu w języku C z niezbędnym komentarzem:
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- //Zmienne wykorzystywanie w programie
- int tab[10] = {9,3,7,2,1,8,4,5,6,3};
- int i = 0;
- int pomocnicza = 0;
- int czyposortowane = 0;
- //Wyswietlenie danych przed posortowaniem
- printf("Tablica przed posortowaniem: \n");
- for(i = 0; i<10; i++)
- {
- printf("Element %d wynosi %d \n", i, tab[i]);
- }
- i = 0;
- //Sortowanie
- do
- {
- //Zmienna utrzymująca program do momentu
- //posortowania w petli
- czyposortowane = 0;
- for(i=0; i<10; i++)
- {
- //Wpisanie zmiennych z pomoca
- //zmiennej pomocniczej
- if(tab[i]>tab[i+1])
- {
- pomocnicza = tab[i];
- tab[i] = tab[i+1];
- tab[i+1] = pomocnicza;
- czyposortowane = 1;
- }
- }
- }while(czyposortowane != 0);
- //Wyswietlenie tablicy posortowanej
- printf("\n Tablica po zastosowaniu sortowania: \n");
- for(i=0; i<10; i++)
- {
- printf("Element %d wynosi %d \n", i, tab[i]);
- }
- return 0;
- }