Sorting
terbagi menjadi 5 cara tetapi sebenarnya ada banyak cara sorting
n = jumlah data / banyak data yang perlu di sort
putaran = tahap untuk mensort data, setiap putaran pasti menemukan 1 var paling kecil / besar (ascending / descending)
sehingga pada putaran selanjutnya tidak perlu membandingkan dengan var tadi.
-Bubble Sorting n^2 (proses pencarian datanya karena looping dalam looping)
jumlah putaran : n-1
coding:
for( i = 0; i < n; i++)
. for( j = n-1; j >= i; j–) (mengecek dari belakang)
-Selection Sorting n^2
jumlah putaran : n-1
bedanya dengan Bubble sorting adalah selection menyimpan index sementara. Dibandingkan 1 index dengan seluruh data baru
dipindah/diubah datanya.
coding:
for( i = 0; i <= n-1; i++){
. k = i
. for( j = i; j <= n-1; j++){
. <bandingkan>
. }
. jika j<i/j>i ditukar
. }
-Insertion Sorting (penyisipan)
jumlah putaran : n-1
putaran pada Insertion sorting tidak memastikan data tersebut terkecil/terbesar pada setiap putaran.
teori coding:
pindah 1 index ke temporary lau dibandingkan. jika temp lebih kecil maka geser index tersebut hingga
temp lebih besar daripada suatu index, jika sudah, maka sisipkan.
NB: Bubble,Selection, dan Insertion tidak efektif dalam sorting jika jumlah data terlalu banyak.
-Quick Sort
jumlah putaran: tidak menentu
bertipe recrusive
-Merge Sort
jumlah putaran: tidak menentu
menggunakan teknik devide & conquer & recure
teori coding:
membagi datanya menjadi 2 2 2 2… , setiap 2 data tersebut dibandingkan lalu digabung dengan 2 data lainnya
yang telah di sort menjadi 4 4 … . Kemudian, 4 data tersebut di sort lagi lalu digabung dengan 4 data lainnya
yang telah di sort menjadi 8 … . lalu 8 data tersebut di sort dan dilanjutkan terus menerus hingga semua data
telah digabung dan di sort untuk terakhir kalinya.
—————————————————————————————————————-
Searching (pencarian data)
searching akan mudah dilakuka jika data sudah disort.
tipe searching:
-Linear search: strcmp/membandingkan semua data dengan yang diinput.
-Binary search: mencari titik tengah data, jika data yang dicari lebih besar drpd titik tengah maka yang lebih kecil
dihapus lalu dicari kembali titik tengahnya.
cth: terdapat 500 data dan ingin mencari data ke 400.
500 dibagi menjadi 1-250 & 250-500. Karena data diantara 250-500 maka data 1-250 tidak digunakan lagi. 250-500 dipecah
lagi menjadi 250-375 & 375-500. Data yang kita cari diantara 375-500 dipecah lagi seterusnya hingga menemukan datanya.
-Interpolation search:
rumus interpolation mid = kunci-data[min] x (max-min)+min
data[max]-data[min]
Posted by: mwczanez15
Categories:
Uncategorized