Ik ben nu aan het leren te programmeren en dit is mijn derde programma in kotlin. Ik heb een sorting algorithm dat eigenlijk hoort te sorteren door twee getallen naast elkaar te vergelijken en zo doorgaat totdat het gesorteerd is. Dit is de code.
En als uitkomst krijg ik dit bijv.
En soms onsorteerd hij zichzelf en sorteerd zich daarna weer.
Kan iemand mij uitleggen waarom dit gebeurt en waarom het werkt?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| import java.util.* fun main() { val shuffled = (1..10).shuffled().toMutableList() println(shuffled) for (d in 1..9) for (i in 0..8) { if (shuffled[i] > shuffled[d]) { Collections.swap(shuffled, i, d) println(shuffled) } } } |
En als uitkomst krijg ik dit bijv.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| [3, 2, 1, 10, 5, 6, 8, 9, 7, 4] [2, 3, 1, 10, 5, 6, 8, 9, 7, 4] [2, 10, 1, 3, 5, 6, 8, 9, 7, 4] [1, 10, 2, 3, 5, 6, 8, 9, 7, 4] [1, 2, 10, 3, 5, 6, 8, 9, 7, 4] [1, 2, 3, 10, 5, 6, 8, 9, 7, 4] [1, 2, 3, 5, 10, 6, 8, 9, 7, 4] [1, 2, 3, 5, 6, 10, 8, 9, 7, 4] [1, 2, 3, 5, 6, 8, 10, 9, 7, 4] [1, 2, 3, 5, 6, 8, 9, 10, 7, 4] [1, 2, 3, 5, 6, 7, 9, 10, 8, 4] [1, 2, 3, 5, 6, 7, 8, 10, 9, 4] [1, 2, 3, 5, 6, 7, 8, 9, 10, 4] [1, 2, 3, 4, 6, 7, 8, 9, 10, 5] [1, 2, 3, 4, 5, 7, 8, 9, 10, 6] [1, 2, 3, 4, 5, 6, 8, 9, 10, 7] [1, 2, 3, 4, 5, 6, 7, 9, 10, 8] [1, 2, 3, 4, 5, 6, 7, 8, 10, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] |
En soms onsorteerd hij zichzelf en sorteerd zich daarna weer.
Kan iemand mij uitleggen waarom dit gebeurt en waarom het werkt?