Sorting Algorithm

Sorting adalah proses pengurutan suatu barisan secara ascending (a-z) atau descending (z-a). Algorithma adalah cara untuk menyelesaikan suatu masalah. Dalam tulisan ini akan saya bahas 3 algoritma pengurutan yaitu Buble Sort, Insertion sort, dan Selection sort.

Problems:
Diberikan barisan bilangan finite: 91, 76, 33, 12, 3, 77, 78, 81, 9, 0, 11
Urutkan barisan tersebut secara ascending!

Definition:
0. Elemen barisan adalah bilangan bulat/integer.
1. State awal adalah barisan paling awal. Contoh: 91.
2. Jumlah state/kondisi ada n! Contoh: 11! Namun ini tidak efisien.
3. Goal state terdefinisikan sebagai barisan yang terurut secara ascending. Contoh: 0, 3, 9, 11, 12, 33, 76, 77, 78, 81, 91.

Solution:
1. Buble Sort



  • Proses sorting dimulai dari bilangan pertama (n), jika bilangan selanjutnya (n+1) lebih kecil maka swap dilakukan 1 kali. Begitu pula untuk bilangan lainnya, proses dilakukan sampai pernyataan n+1 < n tidak berlaku.
  • Penerapan algoritma ini dalam c++:


2. Insertion Sort
  • Proses sorting dilakukan pertamakali di state 2. Idenya: Akan dilakukan perbandingan, jika bilangan di kiri lebih besar, lakukan swap. Begitu seterusnya sampai bilangan n tidak lebih kecil dari n-1. Untuk worst case, proses membandingkan ini dilakukan sampa n-1 kali. jadi misalnya Head ada di bilangan ke 4, proses membandingkan dilakukan sebanyak 3 kali: bil. ke 4 dengan bil. ke 3, dengan bil. ke 2, ... sampai n=1.
  • Penerapan algoritma ini dalam c++:

3. Selection Sort
  • Metode ini sederhana saja. Dilakukan proses sebanyak n buah data/bilangan sampai diperoleh bilangan paling kecil. Setelah berhasil ditemukan, bilangan terkecil tersebut di swap dengan bilangan pertama (atau bilangan ke n=0, untuk akhir proses, n++). Begitu seterusnya sehingga untuk langkah/proses berikutnya dilakukan sebanyak n-1 (berkurang satu langkah).
  • Penerapan algoritma ini dalam c++:
 
Selesai. 

Notes: Catatan ini adalah catatan belajar. Jadi tidak mutlak (100%) tepat, dan program c++ juga adalah hasil latian saya. Sharing dan semoga bermanfaat. 

Komentar

Postingan populer dari blog ini

#worldiknow Search Engine Optimization Sudah Gak Penting!

a Title-less Note