← Kembali ke DSA
🫧
Sorting (Pengurutan)
Bubble Sort
Berulang kali menukar elemen bersebelahan yang urutannya salah, sehingga elemen terbesar yang belum terurut "menggelembung" ke posisinya di setiap putaran.
Kompleksitas
Waktu (Terbaik)
O(n)
Waktu (Rata-rata)
O(n²)
Waktu (Terburuk)
O(n²)
Memori
O(1)
Poin Penting
- ›Mudah diimplementasikan, tetapi tidak efisien untuk data besar
- ›Setiap satu putaran penuh menempatkan satu elemen lagi di posisi akhirnya
- ›Bisa dioptimalkan: jika tidak ada pertukaran dalam satu putaran, array sudah terurut dan proses bisa berhenti
- ›Stable sort: urutan relatif elemen yang nilainya sama tetap terjaga
- ›In-place: hanya butuh ruang tambahan O(1)
Visualizer Interaktif
Langkah 0 / 0✓ Selesai diurutkan!
LambatCepat
NormalDibandingkanDitukarTerurut
Contoh Kode
Swift
func bubbleSort(_ arr: inout [Int]) {
let n = arr.count
for i in 0..<n - 1 {
var swapped = false
for j in 0..<n - i - 1 {
if arr[j] > arr[j + 1] {
arr.swapAt(j, j + 1)
swapped = true
}
}
if !swapped { break } // early exit optimisation
}
}
var nums = [64, 34, 25, 12, 22, 11, 90]
bubbleSort(&nums)
print(nums) // [11, 12, 22, 25, 34, 64, 90]Latihan Soal
Sort Colors
SedangLeetCode ↗
Sort an Array
SedangLeetCode ↗