Algoritma
Syarat utama melakukan binary search adalah data harus sudah urut
Untuk binary search maka kita harus menentukan posisi awal, tengah, dan akhir dari sebuah array data
low = 0 agar dimulai pada awal data
high = n -1 di sini n adalah nilai maksimal dan dikurangi satu agar berada pada posisi akhir data(karena data dihitung dari 0)
middle adalah high ditambah low dibagi 2(berarti posisi tengah2 data)
inti dari binary search adalah membandingkan data yang dicari dengan data yang berada pada posisi tengah
bila data yang dicari = data yang ada di tengah array, maka pencarian langsung selesai
bila data yang dicari < data yang ada di tengah, maka data di sebelah kiri data yang ada di tengah (middle - 1) akan dianggap posisi high yang baru
bila data yang dicari > data yand ada di tengah, maka data di sebelah kanan data yang ada di tengah (middle + 1) akan dianggap posisi low yang baru
dari situ dilakukan perulangan sampai low=high karena dari situlah nilai mid menjadi = data yang dicari
Flowchart
Source Code Sederhana
Syarat utama melakukan binary search adalah data harus sudah urut
Untuk binary search maka kita harus menentukan posisi awal, tengah, dan akhir dari sebuah array data
low = 0 agar dimulai pada awal data
high = n -1 di sini n adalah nilai maksimal dan dikurangi satu agar berada pada posisi akhir data(karena data dihitung dari 0)
middle adalah high ditambah low dibagi 2(berarti posisi tengah2 data)
inti dari binary search adalah membandingkan data yang dicari dengan data yang berada pada posisi tengah
bila data yang dicari = data yang ada di tengah array, maka pencarian langsung selesai
bila data yang dicari < data yang ada di tengah, maka data di sebelah kiri data yang ada di tengah (middle - 1) akan dianggap posisi high yang baru
bila data yang dicari > data yand ada di tengah, maka data di sebelah kanan data yang ada di tengah (middle + 1) akan dianggap posisi low yang baru
dari situ dilakukan perulangan sampai low=high karena dari situlah nilai mid menjadi = data yang dicari
Flowchart
Source Code Sederhana
int binary_search(int yangdicari)
{
int low, high, middle;
low = 0;
high = n-1;
while (low <= high){
middle = (low+high) / 2;
if (yangdicari == array[middle])//untuk mengetahui data apa yang ada pada posisi tengah
return(array[middle])//mengembalikan nilai sehingga bisa diketahui di posisi mana data ditemukan
else if(yangdicari < array[middle])
high = middle – 1;
else low = middle + 1; }
return -1; }
//ingat sebelumnya harus struct data dulu
Posting Komentar