fork download
  1. //Сы Юйхао, 1032255367,НКАбд-04-25,27.2.26, 19:45
  2. //Написать функцию для бинарного поиска элемента в упорядоченном массиве.
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. int h(int a[], int size, int x) {
  7. int left = 0, right = size - 1;
  8. while (left <= right) {
  9. int mid = left + (right - left) / 2;
  10. if (a[mid] == x) return mid;
  11. else if (a[mid] < x) left = mid + 1;
  12. else right = mid - 1;
  13. }
  14. return -1;
  15. }
  16.  
  17. int main() {
  18. int size;
  19. cout << "Введите размер массива: ";
  20. cin >> size;
  21.  
  22. int a[size];
  23. cout << "Введите элементы массива:\n";
  24. for (int i = 0; i < size; i++)
  25. cin >> a[i];
  26.  
  27. int x;
  28. cout << "Введите искомый элемент: ";
  29. cin >> x;
  30.  
  31. int pos = h(a, size, x);
  32. if (pos != -1)
  33. cout << "Позиция: " << pos << endl;
  34. else
  35. cout << "Не найдено" << endl;
  36. return 0;
  37. }
Success #stdin #stdout 0.01s 5296KB
stdin
5
1 3 9 4 5
1
stdout
Введите размер массива: Введите элементы массива:
Введите искомый элемент: Позиция: 0