Iki telu algoritma penyurutan perbandingan O(n²) sing sederhana. Kadhangkala alon ing input gede, nanging gampang dimangerteni lan migunani kanggo menerangake mekanika penyurutan.
Iki telu algoritma penyurutan perbandingan O(n²) sing sederhana. Kadhangkala alon ing input gede, nanging gampang dimangerteni lan migunani kanggo menerangake mekanika penyurutan.
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i] # element to place
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j] # shift bigger elements right
j -= 1
arr[j + 1] = key # drop key into the gap
return arr
insertion_sort([5, 2, 4, 1]) # -> [1, 2, 4, 5]
| Sort | Best | Worst | Stable | In-place |
|---|---|---|---|---|
| Bubble | O(n) | O(n²) | Yes | Yes |
| Selection | O(n²) | O(n²) | No | Yes |
| Insertion | O(n) | O(n²) | Yes | Yes |
Insertion sort pancen cepet kanggo larik cilik utawa meh diurut lan digunakake ing dalam penyurutan hibrida. Ilangi ketiga-tigane ing data gede sing ora diurut — gunakake penyurutan O(n log n).
Penyurutan iki mbangun intuisi kanggo invariant, tukeran, lan stabilitas sadurunge sampeyan ngatasi algoritma lanjut.
Insertion sort utamane kelihatan ing penyurutan produksi (kaya Timsort) kanggo subaray cilik.
Ngerti apa isi O(n²) ngadekne lompatan menyang penyurutan O(n log n) sing bermakna.