Macam - Macam Sorting pada Python

Dalam dunia pemrograman, sorting adalah bagian yang tidak bisa dihilangkan. Tujuan utama dari proses sorting adalah untuk mengurutkan data baik dari yang nilai terendah maupun yang tertinggi. Yang secara tidak langsung akan menjadikan data lebih terstruktur.

Ada banyak algoritma populer untuk mengurutkan data, seperti : Insertion Sort, Selection Sort, Merge Sort, Quick Sort, Buble Sort, Shell Sort. Diantaranya sebagai berikut :

1. Bubble Sort


Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.

Algoritma ini termasuk dalam golongan algoritma comparison sort, karena menggunakan perbandingan dalam operasi antar elemennya. Berikut ini adalah gambaran dari algoritma bubble sort:
  1. Bandingkan nilai data ke-1 dan data ke-2
  2. Jika data ke-1 lebih besar dari data ke-2 maka tukar posisinya
  3. Kemudian data yg lebih besar tadi dibandingkan dengan data ke-3
  4. Lakukan langkah nomer 2 hingga selesai

2. Selection Sort
Selection Sort adalah sorting dengan prinsip memilih elemen dengan nilai paling rendah dan menukar elemen tersebut dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah julah total elemen dikurangi 1.

 Adapun langkah programnya sebagai berikut :

  1.  Pengecekan dimulai dari data ke-1 sampai data ke-n.
  2. Tentukan bilangan dengan index terkecil dari data bilangan tersebut.
  3. Tukar bilangan index terkecil tersebut dengan bilangan pertama (i= 1).
  4. Ulangi langkah 2 dan 3 dengan bilangan index (i= i+1) hingga data terurut semuanya
3. Insertion Sort
Insertion sort adalah sebuah metode pengurutan data dengan menempatkan setiap elemen data pada pisisinya dengan cara melakukan perbandingan dengan data – data yang ada.

 Adapun langkah programnya sebagai berikut :
  1. Bandingkan data ke-2 dengan data ke-1 ,jika data ke-2 lebih kecil maka tukar posisinya, jika tidak maka biarkan saja.
  2. Bandingkan data ke-3 dengan data ke-2 dan data ke-1 ,jika data ke-3 lebih kecil maka tukar lagi posisinya.
  3. Bandingkan data ke-4 dengan data ke-3 ,data ke-2 dan data ke-1 , jika data ke-4 lebih kecil dari ketiganya maka tukar dan pindahkan data ke-4 ke paling depan. Begitu seterusnya hingga data terurut.


4. Quick Sort
Quick sort berdasar kepada pendekatan divide-and-conquer dengan memilih satu elemen sebagai elemen pivot dan mempartisi array sehingga; sisi kiri pivot memiliki semua elemen dengan nilai yang lebih kecil dibandingkan elemen pivot, dan sisi kanan memiliki semua elemen dengan nilai yang lebih besar dibandingkan nilai elemen pivot.

Adapun langkah programnya sebagai berikut :
  1.  Misalnya Kita mempunyai data A yang mempunyai N elemen. Kita pilih sembarang elemen dari data tersebut, biasanya elemen pertama, kita misalkan x.
  2. Kemudian semua elemen tersebut disusun dengan menempatkan X pada posisi J sedemikian rupa sehingga elemen ke 1 sampai pada J-1 mempunyai nilai lebih besar dari X
  3. Hingga seterusnya diulang setiap sub data.

5. Merged Sort
Merge Sort adalah salah satu sorting dengan metode memecah data kemudian
menyelesaikannya setiap bagian dan menggabungkannya kembali hingga data terurut.

Adapun langkah programnya sebagai berikut :

  1. Pertama data dipecah menjadi 2 bagian dimana bagian pertama merupakan setengah (jika data genap) atau setengah minus satu (jika data ganjil) dari seluruh data, kemudian dilakukan pemecahan kembali untuk masing-masing blok sampai hanya ada satu data dalam satu blok.
  2. Setelah digabungkan kembali dengan membandingkan pada blok yang sama apakah data pertama lebih besar dari pada data ke-tengah+1 , jika iya maka data ke-tengah+1 dipindah menjadi data pertama. Kemudian data pertama tadi sampai data ke-tengah dipindah menjadi data ke-dua sampai data ke-tengah+1.
  3. Begitu seterusnya hingga membentuk data yg terurut dalam satu blok yang utuh seperti awalnya. Sehingga merge sort membutuhkan fungsi rekursif dalam penyelesainnya.


Komentar

Posting Komentar

Postingan populer dari blog ini

Graph - Python

Linier dan Binary Search - Python