Salah satu algoritma yang digunakan untuk mengurutkan sebuah list dengan cara menyisipkan elemen satu per satu sesuai dengan urutan besar kecilnya elemen disebut Insertion Sort.
Insertion Sort merupakan algoritma pengurutan sederhana yang bisa digunakan pada list atau array yang memiliki ukuran kecil hingga sedang. Pada dasarnya, Insertion Sort bertujuan untuk menyisipkan elemen satu per satu ke dalam list yang sudah diurutkan sebelumnya. Berikut ini adalah beberapa langkah yang dilakukan dalam proses Insertion Sort:
- Pertama, kita akan membagi list menjadi dua bagian, yaitu bagian yang telah diurutkan dan bagian yang belum diurutkan.
- Kemudian, kita akan mengambil satu elemen dari bagian yang belum diurutkan dan menyisipkannya ke dalam bagian yang telah diurutkan, pada posisi yang sesuai.
- Proses ini dilakukan berulang-ulang hingga semua elemen telah disisipkan ke dalam bagian yang telah diurutkan.
Kelebihan dan Kekurangan Insertion Sort
Sebelum melanjutkan, mari kita bahas tentang kelebihan dan kekurangan dari Insertion Sort.
Kelebihan:
- Mudah dipahami dan diimplementasikan.
- Efisien untuk list yang memiliki ukuran kecil atau list yang hampir terurut.
- Stabil, yang berarti bahwa elemen dengan nilai yang sama tidak akan berubah posisinya setelah pengurutan.
- Sebagai algoritma in-place, Insertion Sort tidak memerlukan ruang memori tambahan untuk mengurutkan list.
Kekurangan:
- Tidak efisien untuk list dengan ukuran besar karena memiliki kompleksitas waktu O(n^2) dalam kasus terburuk.
- Lebih lambat dibandingkan dengan algoritma pengurutan lainnya, seperti Merge Sort atau Quick Sort, terutama jika list memiliki banyak elemen.
Contoh Implementasi Insertion Sort
Berikut adalah contoh implementasi Insertion Sort dalam bahasa pemrograman Python:
def insertion_sort(arr): for i in range(1, len(arr)): key = arr j = i - 1 while j >= 0 and key < arr: arr = arr j -= 1 arr = key# Driver codearr =insertion_sort(arr)print("Sorted array is:", arr)
Dalam contoh di atas, kita menggunakan Insertion Sort untuk mengurutkan elemen dalam list arr
. Setelah proses pengurutan selesai, kita mencetak list yang telah diurutkan.
Penutup
Secara keseluruhan, Insertion Sort bisa menjadi pilihan yang baik untuk mengurutkan list dengan ukuran kecil hingga sedang. Namun, jika kita bekerja dengan list yang memiliki ukuran besar, algoritma pengurutan lainnya seperti Merge Sort atau Quick Sort mungkin lebih efisien dalam hal waktu dan proses pengurutan. Oleh karena itu, penting untuk memahami dan mempertimbangkan kelebihan serta kekurangan dari berbagai algoritma pengurutan sebelum memutuskan algoritma mana yang akan digunakan dalam aplikasi atau proyek.