Selasa, 22 November 2016

C Programming : Binary Search

Assalamu'alaikum.
Postingan kali ini saya mau bahas problem acak lagi, yaitu Binary Search.

Apa itu binary search?
Binary = Biner
Search = Mencari
Jadi arti dari bubble sort adalah mencari biner.

Maksudnya adalah teknik mencari data dengan menggunakan konsep biner.
Nah, biner sendiri kan bilangan 0 dan 1 aja.
Jadi teknik pencarian data ini adalah dengan membagi sebuah array satu dimensi data menjadi 2 sampai datanya ditemukan.

Biar tahu, langsung aku kasih contohnya nih.
Oh iya, sama ini PENTING BANGET!! Syarat dari binary search adalah, data yang ingin dijadikan tempat pencarian harus sudah terurut entah itu ascending atau descending.
INGET YA.. HARUS SUDAH TERURUT.

Contoh proses Binary Search :
Misalkan data-datanya adalah 2 3 5 7 11 13 17
Ingin mencari nilai data 11 ada di posisi mana.

Maka :

<Langkah 1>
Titik awal = 1, Titik akhir = 7
Jumlah data = 7 data
data dibagi 2, yaitu 4 data awal dan 3 data akhir.
Titik tengah = (Titik awal + Titik akhir) / 2 = 8 / 2 = 4
Posisi titik ke-4 memiliki nilai data 7
11 tidak sama dengan 7

<Langkah 2>
Titik awal = Titik tengah + 1 = 5, Titik akhir = 7
Jumlah data = 3 data
data dibagi 2, yaitu 2 data awal dan 1 data akhir
Titik tengah = (5 + 7) / 2 = 12 / 2 = 6
Posisi titik ke-6 memiliki nilai data 13
11 tidak sama dengan 13

<Langkah 3>
Titik awal = 5, Titik akhir = Titik tengah - 1 = 5
Jumlah data = 1 data
data dibagi 2, yaitu 1 data awal dan 0 data akhir
Titik tengah = (5 + 5) / 2 = 10 / 2 = 5
Posisi titik ke-5 memiliki nilai data 11
11 sama dengan 11

Maka, nilai data 11 bisa ditemukan pada posisi data ke-5

Gambaran source codenya bisa dilihat dibawah.
Untuk program utamanya.


Untuk fungsi binary search nya.


Oh iya. Disini saya menggunakan beberapa fungsi tambahan selain int main(),
tapi jika kalian ingin membuat binary searchnya ke dalam fungsi main() pun tidak masalah.

Kemudian contoh eksekusi program.



Sekian penjelasan singkat tentang Binary Search.
Kalo ada pertanyaan atau saran pada postingan ini, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Tidak ada komentar:

Posting Komentar