š«§ Bubble Sort (Pengurutan Gelembung)
Definisi
Bubble Sort adalah algoritma pengurutan sederhana yang berulang kali membandingkan dan menukar pasangan elemen yang berdekatan jika urutannya salah.
Analoginya
Seperti gelembung udara yang naik ke permukaan air, elemen terbesar "menggelembung" ke posisi akhirnya.
šÆ Cara Kerja Bubble Sort
Algoritma ini bekerja dalam beberapa lintasan:
- Perbandingan Berpasangan: Bandingkan setiap pasangan elemen yang berdekatan
- Penukaran: Jika urutan salah, tukar posisi elemen
- Pengulangan: Ulangi hingga tidak ada lagi penukaran yang diperlukan
š Contoh: Mengurutkan [5, 1, 4, 2, 8]
| Lintasan | Perbandingan | Tindakan | Hasil |
|---|---|---|---|
| 1 | (5,1), (5,4), (5,2), (5,8) | Tukar, Tukar, Tukar, Tetap | [1, 4, 2, 5, 8] |
| 2 | (4,2), (4,5), (5,8) | Tukar, Tetap, Tetap | [1, 2, 4, 5, 8] |
| 3 | (1,2), (2,4), (4,5) | Tetap, Tetap, Tetap | [1, 2, 4, 5, 8] |
ā” Kompleksitas Waktu
Terbaik: O(N) - Jika array sudah terurut
Rata-rata & Terburuk: O(N²) - Untuk array acak atau terbalik
šÆ Selection Sort (Pengurutan Seleksi)
Definisi
Selection Sort berulang kali menemukan elemen minimum dari bagian yang belum terurut dan menempatkannya di posisi yang benar.
Analoginya
Seperti memilih kartu terendah dari tumpukan dan meletakkannya di urutan yang benar.
šÆ Cara Kerja Selection Sort
Algoritma ini membagi array menjadi dua bagian:
- Bagian Terurut: Di sebelah kiri (awalnya kosong)
- Bagian Belum Terurut: Di sebelah kanan (seluruh array)
- Pencarian Minimum: Cari elemen terkecil di bagian belum terurut
- Penukaran: Tukar dengan elemen pertama di bagian belum terurut
š Contoh: Mengurutkan [64, 25, 12, 22, 11]
| Iterasi | Minimum | Tindakan | Hasil |
|---|---|---|---|
| 1 | 11 | Tukar 11 dengan 64 | [11, 25, 12, 22, 64] |
| 2 | 12 | Tukar 12 dengan 25 | [11, 12, 25, 22, 64] |
| 3 | 22 | Tukar 22 dengan 25 | [11, 12, 22, 25, 64] |
ā” Kompleksitas Waktu
Selalu: O(N²) - Di semua kasus karena selalu mencari minimum
Keunggulan: Minim jumlah penukaran (hanya N-1 penukaran)