🫧 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:

  1. Perbandingan Berpasangan: Bandingkan setiap pasangan elemen yang berdekatan
  2. Penukaran: Jika urutan salah, tukar posisi elemen
  3. 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:

  1. Bagian Terurut: Di sebelah kiri (awalnya kosong)
  2. Bagian Belum Terurut: Di sebelah kanan (seluruh array)
  3. Pencarian Minimum: Cari elemen terkecil di bagian belum terurut
  4. 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)