Proses mengurutkan sebuah list dengan cara menyisipkan elemen satu per satu sesuai urutan besarnya disebut “Insertion Sort”. Ini adalah metode sederhana dan intuitif yang mirip dengan cara kita mengatur kartu remi dalam tangan kita saat bermain.
Insertion sort adalah algoritma pengurutan yang sederhana namun efisien dalam kasus tertentu. Metode ini bekerja dengan cara membagi list yang akan diurutkan menjadi dua bagian: satu bagian yang sudah diurutkan dan satu bagian yang belum diurutkan. Pada awal proses, bagian yang sudah diurutkan hanya terdiri dari satu elemen (elemen pertama). Bagian yang belum diurutkan adalah sisa elemen di list tersebut.
Cara Kerja Insertion Sort
Langkah dalam metode ini adalah sebagai berikut:
- Pertama, anggap elemen pertama dalam list sebagai bagian yang sudah diurutkan.
- Kemudian, ambil elemen berikutnya dan bandingkan dengan elemen-elemen dalam bagian yang sudah diurutkan. Jika elemen ini lebih besar, sisipkan di posisi yang sesuai.
- Setelah elemen tersebut disisipkan ke posisi yang tepat, bagian yang sudah diurutkan kini berisi dua elemen pertama dari list asli.
- Ulangi proses ini dengan mengambil elemen selanjutnya dari bagian yang belum diurutkan dan menyisipkannya ke dalam bagian yang sudah diurutkan.
- Lakukan ini berulang kali sampai semua elemen di list telah diurutkan.
Kelebihan dan Kekurangan
Salah satu kelebihan dari insertion sort adalah simpel dan mudah diimplementasikan. Selain itu, metode ini juga efisien untuk list yang sudah hampir terurut atau untuk list dengan jumlah elemen yang kecil. Dalam kasus terbaik, insertion sort hanya memerlukan waktu linear (O(n)) untuk menyelesaikan pengurutan.
Namun, insertion sort tidak efisien untuk list dengan elemen yang banyak. Dalam kasus terburuk, ia membutuhkan waktu kuadratik (O(n^2)) untuk mengurutkan list.
Jadi, dalam konteks penggunaannya, insertion sort lebih tepat digunakan pada list kecil atau hampir terurut. Untuk list besar dengan elemen yang acak, algoritma pengurutan lain seperti quick sort atau merge sort bisa jadi lebih efisien.