← Kembali ke DSA
🎯
Sorting (Pengurutan)
Selection Sort
Berulang kali mencari elemen terkecil dari bagian yang belum terurut, lalu memindahkannya ke batas bagian yang sudah terurut.
Kompleksitas
Waktu (Terbaik)
O(n²)
Waktu (Rata-rata)
O(n²)
Waktu (Terburuk)
O(n²)
Memori
O(1)
Poin Penting
- ›Selalu melakukan tepat n−1 pertukaran apa pun input-nya, berguna saat operasi tulis itu mahal
- ›Selalu O(n²), tidak lebih cepat meskipun data sudah terurut
- ›In-place dan mudah diimplementasikan
- ›Secara default tidak stable (pertukaran bisa mengubah urutan relatif elemen yang sama)
- ›Paling cocok untuk array kecil atau saat jumlah pertukaran perlu ditekan
Visualizer Interaktif
Langkah 0 / 0✓ Selesai diurutkan!
LambatCepat
NormalDibandingkanDitukarTerurut
Contoh Kode
Swift
func selectionSort(_ arr: inout [Int]) {
let n = arr.count
for i in 0..<n - 1 {
var minIdx = i
for j in i + 1..<n {
if arr[j] < arr[minIdx] { minIdx = j }
}
if minIdx != i { arr.swapAt(i, minIdx) }
}
}
var nums = [64, 25, 12, 22, 11]
selectionSort(&nums)
print(nums) // [11, 12, 22, 25, 64]Latihan Soal
Sort Colors
SedangLeetCode ↗
Sort an Array
SedangLeetCode ↗