Bubble sort
Put the smallest time first
- Three race times sit in an array:
14,9,11. The smallest should come first. - Compare each pair of neighbours. When the left one is larger, swap them.
- That single comparison does not finish the list. The next pair is compared after it.
Letakkan waktu terpendah di awal
- Tiga waktu lari berada dalam sebuah array:
14,9,11. Yang terkecil harus datang pertama. - Bandingkan setiap pasangan tetangga. Ketika yang kiri lebih besar, tukar posisi mereka.
- Satu perbandingan tunggal tidak menyelesaikan daftar. Pasangan berikutnya dibandingkan setelahnya.
DECLARE Score : ARRAY[1:3] OF INTEGER
DECLARE J, Temp : INTEGER
Score[1] ← 14
Score[2] ← 9
Score[3] ← 11
FOR J ← 1 TO 2
IF Score[J] > Score[J + 1]
THEN
Temp ← Score[J]
Score[J] ← Score[J + 1]
Score[J + 1] ← Temp
ENDIF
NEXT J
OUTPUT Score[1]
OUTPUT Score[2]
OUTPUT Score[3]
Repeat the pass
- One pass of the inner loop bubbles the largest value it sees toward the end.
- The outer loop repeats the pass. For four values, three passes are enough.
- This is the syllabus's bubble sort. A linear search, which you wrote earlier, only looks. A sort rearranges.
Ulangi lintasan
- Satu lintasan loop dalam menggugahkan nilai terbesar yang dilihatnya menuju akhir.
- Loop luar mengulang lintasan tersebut. Untuk empat nilai, tiga lintasan sudah cukup.
- Ini adalah bubble sort silabus. Pencarian linear, yang Anda tulis sebelumnya, hanya mencari. Sortir mengatur ulang.
DECLARE Score : ARRAY[1:4] OF INTEGER
DECLARE I, J, Temp : INTEGER
Score[1] ← 4
Score[2] ← 1
Score[3] ← 3
Score[4] ← 2
FOR I ← 1 TO 3
FOR J ← 1 TO 3
IF Score[J] > Score[J + 1]
THEN
Temp ← Score[J]
Score[J] ← Score[J + 1]
Score[J + 1] ← Temp
ENDIF
NEXT J
NEXT I
OUTPUT Score[1]
OUTPUT Score[2]
OUTPUT Score[3]
OUTPUT Score[4]
Watch out
- Swap with a
Tempvariable.Score[J] ← Score[J + 1]alone deletes the left value. - The inner
NEXTnamesJ. The outerNEXTnamesI.
Hati-hati
- Tukar dengan variabel
Temp.Score[J] ← Score[J + 1]saja menghapus nilai kiri. NEXTdalam menamaiJ.NEXTluar menamaiI.
Common mistakes
- The test is "left is greater", so the smaller value moves left. The other way sorts into reverse order.
- Arrays in this course count from 1. The last pair is the cell just before the end, and the last cell.
Kesalahan umum
- Ujinya adalah "kiri lebih besar", sehingga nilai yang lebih kecil bergerak ke kiri. Cara sebaliknya mengurutkan ke urutan terbalik.
- Array dalam kursus ini dihitung mulai dari 1. Pasangan terakhir adalah sel tepat sebelum akhir, dan sel terakhir.
Now you try
- The first task is one pass. The second is the full sort. Output each value on its own line.
- Press Check answer to test it.
Sekarang Anda coba
- Tugas pertama adalah satu lintasan. Tugas kedua adalah seluruh sortir. Keluarkan setiap nilai pada baris sendiri.
- Tekan Cek jawaban untuk mengujinya.
The array Score holds 14, 9, 11. Make one pass that swaps a neighbour when the left value is larger. Output the three values, one per line (9, then 11, then 14). · Jujukan Score mengandungi 14, 9, 11. Buat satu laluan yang menukar jiran apabila nilai kiri adalah lebih besar. Keluarkan tiga nilai tersebut, satu per baris (9, kemudian 11, kemudian 14).
Click Run to see the output here. · Klik Jalankan untuk melihat output di sini.
The array Score holds 4, 1, 3, 2. Bubble-sort it into ascending order and output the four values, one per line. · Array Score berisi 4, 1, 3, 2. Urutkan secara bubble menjadi urutan naik dan outputkan empat nilai tersebut, satu per baris.
Click Run to see the output here. · Klik Jalankan untuk melihat output di sini.