Senin, 26 Maret 2018

Struktur Data : Insertion Sort & Quick Sort (Pyhton) - Part 2

Haloo sobat kodingers, kembali lagi bersama saya 😅 tentunya dengan postingan baru, materi baru dan juga semangat yang selalu harus baru 😃. Postingan yang lalu kita telah membahas 2 jenis sorting yaitu Bubbel sort dan Selection sort. Nah pada postingan kali ini kita akan membahas 2 sorting baru yaitu Insertion sort dan Quick sort. Are you ready? Yuk langsung saja kita bahas 😃.

Insertion Sort

Insertion Sort merupakan metode pengurutan data yang cara kerjanya menyisipkan suatu elemen list pada posisi yang sesuai. Posisi tersebut dicari dengan cara membandingkan suatu elemen dengan elemen-elemen sebelumnya. Pada algoritma ini, mula-mula elemen pertama dianggap telah berada pada posisi yang tepat. Selanjutnya, elemen kedua akan dibandingkan dengan elemen pertama. Jika elemen pertama lebih besar dari elemen kedua, maka elemen pertama akan digeser ke kanan menjadi elemen kedua dan elemen kedua sebelumnya akan disisiplan pada posisi pertama.

Setelah itu, elemen ketiga akan dibandingkan dengan elemen kedua dan pertama. Jika elemen kedua lebih besar dari elemen ketiga, maka elemen kedua akan digeser ke kanan. Selanjutnya, elemen ketiga akan dibandingkan lagi dengan elemen pertama. Jika elemen pertama lebih besar dari elemen ketiga, maka elemen pertama juga akan digeser ke kanan dan elemen ketiga akan disisipkan pada posisi pertama. Jika elemen pertama lebih kecil dari elemen ketiga, maka elemen ketiga akan disisipkan pada posisi kedua.


Demikian seterusnya sampai seluruh elemen di dalam list terproses. Untuk lebih mudah dalam memahami proses di dalam algoritma Insertion sort, perhatikan implementasinya dalam Python :




Itulah sedikit ulasan mengenai Insertion sort atau pengurutan sisipan. Selanjutnya kita akan bahas sort kedua pada postingan kali ini yaitu Quick sort.


Quick Sort
 Quick sort adalah algoritma sorting yang berdasarkan pembandingan dengan metoda divide-and-conqueror. Sesuai dengan namanya quick yang berarti cepat, sehingga berarti algoritma quick sort mengurutkan data dalam suatu list dengan sangat cepat. Pengurutan Quick sort ditentukan oleh pivot. Dan pivot tersebut bisa berada di depan , berada di belakang atau berada di tengah. Namun algoritma ini sangat komplex dan diproses secara rekursif.
Seperti yang sudah dijelaskan di atas, quick sort merupakan algoritma yang mengurutkan data dengan cara membagi. Pertama quick sort membagi list yang besar menjadi dua buah sub list atau dua kubu yang lebih kecil (kubu element kecil dan kubu element besar). Kemudian quick list akan menyortir sub list itu secara rekursif.
Adapun langkah-langkah pengerjaannya seperti berikut:
Pertama, mengambil sebuah elemen, yang disebut dengan pivot, pada sebuah daftar. Kedua, mengurutkan kembali sebuah list sehingga elemen dengan nilai yang kecil dari pivot berada sebelum pivot, sedangkan seluruh element yang memiliki nilai yang lebih besar dari pivot berada setelahnya (nilai yang sama dapat berada pada pivot setelahnya). Setelah pemisahan, pivot berada pada posisi akhirnya. Operasi ini disebut Partition. Yang terakhir sub list kemudian disortir secara recursif dari elemen yang lebih kecil dan sub list dari elemen yang lebih besar. 
Bingung 😂? Langsung saja kita terapkan pada Python :


Di atas merupakan contoh penerapan quick sort sederhana. Penerapan yang lebih rumit dan lebih panjangnya seperti di bawah ini :


Bagaimana? Sudah mengerti? Jangan lelah untuk mencoba ya 😂. Itulah postingan untuk kita kali ini, semoga bermanfaat. Nantikan postingan selanjutnya tentang 2 sort yang baru. Apakah itu? Tunggu saja ya 😂.
Share:

0 komentar:

Posting Komentar

BTemplates.com