Vědět víc - vzdělávací portál pro zvídavé


Lab 5: Bubble sort

Slide

Nyní můžeme metodu bubble sort doplnit do našeho programu pro práci s polem. 

Řazení doplníme mezi část vstupní (tedy tu, kde čteme data od uživatele) a výstupní (tedy tu, kde data tiskneme). 

DIM A(10) AS INTEGER 
FOR i = 0 TO 10 
    PRINT "Zadej hodnotu cislo "; i; 
    INPUT "=>>", A(i) 
NEXT 
CLS 
 
DO 
    zmena = 0 
    FOR i = 0 TO 9 
        IF A(i) > A(i + 1) THEN 
            zmena = 1 
            SWAP A(i), A(i + 1) 
        END IF 
    NEXT 
LOOP UNTIL zmena = 0 
FOR i = 0 TO 10 
    PRINT i, A(i) 
NEXT 

Řazení začíná klíčovým slovem DO a končí na řádku s klíčovým slovem LOOP. Pole procházíme tak dlouho, dokud jsme provedli změnu (proměnná zmena=1). Proměnnou zmena nastavíme na hodnotu jedna vždy, když provedeme záměnu prvků. Pokud je pole seřazené, žádnou změnu neprovedeme, proměnná zmena zůstane nastavená na hodnotu nula a smyčka skončí.  

Za povšimnutí stojí použití funkce SWAP pro prohození prvků pole. Tato funkce zamění hodnoty dvou proměnných. Samozřejmě bychom se obešli i bez ní, ale potřebovali bychom si pomoci další proměnnou. Záměna dvou hodnot totiž není tak jednoduchá - schválně si ji zkuste napsat sami.