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();
}
hasil c++nya
hasil cmpilernya
0 komentar:
Posting Komentar