Ahoj, umíš použít cyklus For? Bubblesort neboli bublinkové řazení se jmenuje podle toho, že největší nebo nejmenší hodnoty postupně "vybublávají" na svou požadovanou pozici. Je to jednoduchý, ale zoufale neefektivní algoritmus

Takže například máš pole čtyř čísel
p[ ] v tomhle pořadí: 8, 5, 1, 3, které se dá od nejmenšího po největší seřadit třeba tímhle způsobem:
Kód: Vybrat vše
For i = 1 To 3
For j = 3 To i Step -1
If p(j+1) < p(j) Then
w = p[j]
p[j] = p[j+1]
p[j+1] = w
EndIf
EndFor
EndFor
Je to jeden z řady způsobů jak se dá Bubblesort provést, obsahuje dva vnořené cykly
i a
j, které běží "proti sobě".
Vnější cyklus
i ukazuje kam se má hledaná hodnota umístit, pod ní je pole už setříděné.
Vnitřní cyklus
j v opačném směru prohledává nesetříděný zbytek pole zhora dolů a posunuje menší čísla níž až do jejich definitivní pozice.
Pokud je hodnota o jednu buňku nad ukazatelem
j menší než ta na kterou ukazuje, tak se mezi sebou prohodí, k tomu slouží pomocná proměnná
w.
Když otočíš znaménko v podmínce z
< na
>, bude se řadit obráceně - od největšího po nejmenší číslo, zkus si to.
Tady vidíš stav během jednotlivých průchodů:
Kód: Vybrat vše
i j | p[1] p[2] p[3] p[4]
-----------+-------------------------------
1 3 | 8 5 1 3
1 2 | 8 1 5 3
1 1 | 1 8 5 3
2 3 | 1 8 3 5
2 2 | 1 3 8 5
3 3 | 1 3 5 8
Pro srovnání se hodí zobrazit nesetříděné pole před řazením, a potom do druhého řádku setříděný výsledek

Další způsoby jak Bubblesort vyrobit včetně animací najdeš třeba na
Wikipedii.
domitea: To víš, vysvědčení se blíží, je potřeba ukázat co se na gymplu naučili/y za celý rok

A proč zrovna Small Basic? Protože naše školství bylo před pár lety prodáno do otroctví za třicet stříbrných

- Langer-Ballmer.jpg (15.74 KiB) Zobrazeno 5340 x
X: Hlásím se o můj oblíbený Sinclair BASIC, však ten SAM z něj vycházel
