Page 257 - MODUL ALGORTIMA DAN PEMROGRAMAN
P. 257
5. Program
#include <iostream>
using namespace std;
int binarySearch(int arr[], int n, int target) {
int low = 0;
int high = n - 1;
while (low <= high) {
int mid = (low + high) / 2;
if (arr[mid] == target) {
return mid; // Angka ditemukan, kembalikan indeks
} else if (arr[mid] < target) {
low = mid + 1; // Perbarui low untuk mencari di bagian kanan
} else {
high = mid - 1; // Perbarui high untuk mencari di bagian kiri
}
}
return -1; // Angka tidak ditemukan, kembalikan -1
}
int main() {
// Daftar angka yang sudah diurutkan
int arr[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53,
59, 61, 67, 71, 73, 79, 83, 89, 97};
int n = sizeof(arr) / sizeof(arr[0]); // Hitung jumlah elemen array
// Kasus 1: Cari angka 67
int target = 67;
int indeks = binarySearch(arr, n, target);
if (indeks != -1) {
cout << "Angka " << target << " ditemukan pada indeks ke-" << indeks
<< endl;
} else {
cout << "Angka " << target << " tidak ditemukan dalam daftar." <<
endl;
}
// Kasus 2: Cari angka 50
target = 50;
indeks = binarySearch(arr, n, target);
if (indeks != -1) {
cout << "Angka " << target << " ditemukan pada indeks ke-" << indeks
<< endl;
} else {
cout << "Angka " << target << " tidak ditemukan dalam daftar." <<
endl;
}
return 0;
}
Output:
Angka 67 ditemukan pada indeks ke-18
Angka 50 tidak ditemukan dalam daftar.
234