Sortiranje elemenata liste

3. Sortiranje zamjenom susjednih elemenata (Metoda mjehurića, (eng. Bubble sort)

Ova metoda od prethodnih se razlikuje po tome što se u bubble sortu uspoređuju susjedne vrijednosti, a ne fiksira se jedan element čija se vrijednost tada uspoređuje s vrijednostima preostalih elemenata.

Metodom mjehurića se uspoređuju parovi u nizu (1. i 2. element, 2. i 3,…, predzadnji i zadnji). Rezultat ovakvog uspoređivanja je postavljanje najmanje (ili najveće) vrijednosti na zadnje mjesto u nizu. U slijedećem koraku izostavlja se zadnji element niza i prethodni postupak se ponavlja sa preostalim elementima niza.

Uspoređivanje prestaje kada u prolasku kroz polje nije izvršena niti jedna zamjena. To znači da je niz sortiran. Zbog kontrole zamjene uvodi se pomoćna varijabla koja može biti brojčana ili logička. Njezina vrijednost mijenja se na početku svakog prolaska kroz polje na jednu vrijednost, a ako je napravljena bar jedna zamjena, pomoćna varijabla poprimit će drugu vrijednost. Prvi put kada se vrijednost kontrolne varijable ne promjeni tijekom prolaska kroz polje algoritam staje (polje je sortirano).

Zbog takvog načina uspoređivanja preporučuje se za sortiranje gotovo sortiranih nizova u kojima će uspoređivanje prestati istog trena kad je niz sortiran (za razliku od prethodne metode). To je također metoda koja se koristi za sortiranje nizova s manjim brojem elemenata.

Algoritam:

i=1

dok je (k<>0 ILI i==1) činiti

{

      k=0

      za j = 0 do n-i-1 činiti

            ako je a[j]>a[j+1]

            {

                  zamjeni vrijednosti varijablama a[j] i a[j+1]

                  k=1

            }

      i=i+1

}