a.cpp (1693B)
1 #include <iostream> 2 using namespace std; 3 4 template<typename T> 5 class BinarySearch { 6 private: 7 T *arr; 8 int size; 9 10 public: 11 BinarySearch() : arr(nullptr), size(0) {} 12 13 ~BinarySearch() { 14 delete[] arr; 15 } 16 17 T inputArray() { 18 cout << "How many elements do you want to enter: "; 19 cin >> size; 20 21 arr = new T[size]; 22 23 for (int i = 0; i < size; i++) { 24 cout << "Enter element for position " << i << ": "; 25 cin >> arr[i]; 26 } 27 28 T target; 29 cout << "\nEnter the target element: "; 30 cin >> target; 31 32 return target; 33 } 34 35 void sortArray() { 36 for (int i = 0; i < size - 1; i++) { 37 for (int j = 0; j < size - i - 1; j++) { 38 if (arr[j] > arr[j + 1]) { 39 T temp = arr[j]; 40 arr[j] = arr[j + 1]; 41 arr[j + 1] = temp; 42 } 43 } 44 } 45 } 46 47 int binarySearch(T target) { 48 int low = 0; 49 int high = size - 1; 50 51 while (low <= high) { 52 int mid = low + ((high - low) / 2); 53 if (arr[mid] == target) { 54 return mid; 55 } else if (arr[mid] > target) { 56 high = mid - 1; 57 } else { 58 low = mid + 1; 59 } 60 } 61 return -1; 62 } 63 }; 64 65 int main() { 66 BinarySearch<int> bs; 67 int target = bs.inputArray(); 68 bs.sortArray(); 69 int index = bs.binarySearch(target); 70 71 if (index != -1) { 72 cout << "\nElement " << target << " is found at index " << index << "."; 73 } else { 74 cout << "\nElement " << target << " is not found."; 75 } 76 77 return 0; 78 }