#include<iostream>
#include<algorithm>
using namespace std;
int binarySearch(int array[], int start, int end, int key) {
if(start <= end) {
int mid = (start + (end - start) /2); //lấy vị trí giữa nhất của mảng
if(array[mid] == key)// tìm thấy thì trả về vị trí
return mid;
if(array[mid] > key)// không tìm thấy thì kiểm tra bên trái
return binarySearch(array, start, mid-1, key);
// không có bên trái thì tìm kiếm bên phải
return binarySearch(array, mid+1, end, key);
}
return -1;
}
int main() {
int n, searchKey, loc;
// cout<<"Hello T-Town";
cout << "nhập n: ";
cin >> n;
int arr[n];
cout << "Phần tử mảng: " << endl;
for(int i = 0; i< n; i++) {
cin >> arr[i];
}
cout << "Phần tử cần tìm kiếm: ";
cin >> searchKey;
// sắp xếp
sort(arr,arr+n-1);
// tìm kiếm
if((loc = binarySearch(arr, 0, n, searchKey)) >= 0)
cout << "Tồn tại ở vị trí: " << loc << endl;
else
cout << "Không tồn tại phần tử" << endl;
}