Binary Search pada deret

1. Perhatikan bahwa Anda dapat melewatkan banyak nomor dalam daftar dan masih berada
dalam urutan menaik yaitu sebagai berikut :
3 4 6 17 21 24 32 43
Angka-angka ini meningkat saat Anda bergerak melalui daftar dari kiri ke kanan. Bangunlah
sebuah array yang berisi angka-angka tersebut ? Kemudian lakukan pencarian biner (Binary
Search) untuk memeriksa apakah angka yang kita cari ada dalam daftar array tersebut ?

Source Code :

#include <iostream>
#include <conio.h>
using namespace std;
int main(){
 const int Ar[8] = {3, 4, 6, 17, 21, 24, 32, 43};
 int tar;

cout<<"masukan data yang dicari : ";
 cin>>tar;
int awal=0, akhir=10, tengah;


 while (awal <= akhir)
  { tengah = (awal + akhir)/2;
  if (tar > Ar[tengah] )      // descending ubah tanda > menjadi <
      { awal = tengah + 1; }
  else if (tar < Ar[tengah])  // descending ubah tanda < menjadi >
  {akhir= tengah - 1;}
  else {awal = akhir +1;
  }
   }
   if (tar == Ar[tengah])
   {cout<<" Data ditemukan, Ke- "<<tengah+1<<endl;
   }
   else {
    cout<<"target tidak ditemukan "<<endl;
   }
getch();

}

Output :


Comments