← Kembali ke DSA
🃏
Sorting (Pengurutan)
Insertion Sort
Membangun sub-array terurut satu elemen demi satu, dengan menyisipkan setiap elemen baru ke posisi yang tepat.
Kompleksitas
Waktu (Terbaik)
O(n)
Waktu (Rata-rata)
O(n²)
Waktu (Terburuk)
O(n²)
Memori
O(1)
Poin Penting
- ›Kasus terbaik O(n) pada data yang hampir terurut, sangat praktis
- ›Algoritma online: bisa mengurutkan elemen satu per satu saat datang
- ›Stable sort: elemen yang sama tetap pada urutan aslinya
- ›Dipakai sebagai tahap akhir pada hybrid sort seperti Timsort (Python, Java) untuk subarray kecil
- ›Efisien untuk input kecil (n < 20) karena overhead-nya rendah
Visualizer Interaktif
Langkah 0 / 0✓ Selesai diurutkan!
LambatCepat
NormalDibandingkanDitukarTerurut
Contoh Kode
Swift
func insertionSort(_ arr: inout [Int]) {
let n = arr.count
for i in 1..<n {
let key = arr[i]
var j = i - 1
while j >= 0 && arr[j] > key {
arr[j + 1] = arr[j]
j -= 1
}
arr[j + 1] = key
}
}
var nums = [12, 11, 13, 5, 6]
insertionSort(&nums)
print(nums) // [5, 6, 11, 12, 13]Latihan Soal
Insertion Sort List
SedangLeetCode ↗
Sort an Array
SedangLeetCode ↗