My first Magazine pemrograman-kompetitif-dasar | Page 37

3.1 Pencarian Perhatikan Tabel 3.1 untuk membandingkan banyaknya operasi yang dibutuhkan untuk nilai N tertentu. Tabel 3.1: Perbandingan sequential search dan binary search . N Sequential Binary 50 50 6 100 100 7 150 150 8 200 200 8 250 250 8 300 300 9 Seperti yang terlihat, binary search jauh lebih cepat dari linear search . Bahkan untuk N = 10 6 , binary search hanya membutuhkan maksimal 20 operasi. Implementasi Binary Search Terdapat bermacam cara implementasi binary search . Salah satunya seperti yang dicon- tohkan pada Algoritma 11. Pada algoritma ini, kita akan mencari X pada array h. Tentu kita asumsikan bahwa h sudah terurut. Algoritma 11 Algoritma binary search . 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: procedure B INARY S EARCH (h, X) hasil ← 0 kiri ← 1 kanan ← N while ((kiri ≤ kanan) ∧ (hasil = 0)) do tengah ← (kiri + kanan) div 2 if (X < h[tengah]) then kanan ← tengah − 1 else if (X > h[tengah]) then kiri ← tengah + 1 else hasil ← tengah end if end while if (hasil = 0) then print "beri hadiah lain" else print hasil end if end procedure . Artinya belum ditemukan Berikut adalah cara kerja dari Algoritma 11: • Variabel kiri dan kanan menyatakan bahwa rentang pencarian kita ada di antara [kiri, kanan]. Nilai X mungkin ada di dalam sana. • Kita mengambil nilai tengah dari kiri dan kanan, lalu periksa apakah X sama dengan h[tengah]. 27