Sorting Algorithms — Insertion Sort {52/100}
Sorting merupakan salah satu hal penting yang ada di dunia komputer,sorting sering kali kita manfaatkan untuk mempermudah mendapatkan informasi tertentu secara cepat, contoh gampangnya, ketika kita ingin mencari sebuah nama di dalam buku telpon, kita cenderung akan melihat huruf pertama dari nama yang ingin kita cari dan kita akan membuka halaman dari buku telpon yang merujuk ke halaman yang notabene-nya berisi kumpulan nama-nama yang diawali huruf tersebut. Hal tersebut bisa kita lakukan karna buku telpon tersebut sudah di sortingberdasarkan alfabet.
Sorting merupakan hal yang penting di dalam pemrograman dan memilih teknik sorting yang benar merupakan hal yang sangat penting di dalam pemrograman.
Ada banyak teknik sorting yang bisa kita gunakan, Sebagai permulaan, maka malam ini kita akan membahas insertion sort.
Insertion sort pada dasarnya bekerja hampir sama seperti bubble sort, yang membedakan adalah, dalam insertion sort setelah 2 elemen selesai dibandingkan, algoritma ini tidak akan langsung membandingkan elemen selanjutnya, melainkan akan membandingkan lagi elemen yang baru selesai dibandingkan dengan elemen terakhir yang telah kita urutkan. Untuk mempermudah penjelasan mari kita visualisasikan.
Algoritma
Step 1 − Jika sekarang adalah elemen pertama, itu berarti sudah terurut, dan return 1
Step 2 − Ambil elemen selanjutnya
Step 3 − Bandingkan dengan semua elemen yang sudah ada di list yang sudah terurut
Step 4 − Bandingkan elemen yang baru kita tukar dengan elemen terakhir yang ada di list yang sudah terurut
Step 5 − Masukan nilainya
Step 6 − Ulangi sampai tidak ada lagi elemen yang perlu kita tukar
Berikut cara penerapannya dengan Golang
package mainimport (
"fmt"
)func swap(arrayzor []int, i, j int) {
tmp := arrayzor[j]
arrayzor[j] = arrayzor[i]
arrayzor[i] = tmp
}func insertionSort(array []int) {
for i := 1; i < len(array); i++ {
for j := i; j > 0 && array[j] < array[j-1]; j-- {
swap(array, j, j-1)
}
}
}func main() {
array := []int{1, 6, 2, 4, 9, 0, 5, 3, 7, 8}
fmt.Println("Unsorted array: ", array)
insertionSort(array)
fmt.Println("Sorted array: ", array)
}