Написать рекурсивную программу для алгоритма бинарного поиска. (C/C++) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Написать рекурсивную программу для алгоритма бинарного поиска.

Решение задачи: «Написать рекурсивную программу для алгоритма бинарного поиска. (C/C++)»

textual
Листинг программы
  1. int BinSearch(int *Arr, int a, int b, int v) // a - начало интервала поиска, b-конец, v - то, что ищем
  2. {
  3.     int c;
  4.     if ((b-a)<=1) return (Arr[a]==v || Arr[b]==v); // если интервал стал меньше или = 1 - проверяем крайние точки
  5.                                                                    // если v найдено - вернем 1
  6.     c=(a+b)/2; // середина интервала
  7.     if (Arr[c]==v) return 1; // если случайно попали - ура!
  8.     if (Arr[c] > v)  // если средний элемент больше искомого
  9.        return BinSearch(Arr,a,c,v); // ищем в левой части
  10.     else
  11.        return BinSearch(Arr,c,b,v); // иначе ищем в правой части  
  12. }

Объяснение кода листинга программы

  1. Входные данные:
    • Arr - массив, в котором осуществляется поиск
    • a - начало интервала поиска
    • b - конец интервала поиска
    • v - значение, которое необходимо найти
  2. Проверка условия: если интервал поиска состоит из одного элемента или менее, то возвращается значение, равное 1, если искомое значение v содержится в этом элементе, и 0 в противном случае.
  3. Вычисление среднего индекса интервала c.
  4. Проверка условия: если элемент с индексом c равен искомому значению v, то возвращается значение 1.
  5. Если элемент с индексом c больше искомого значения v, то поиск продолжается в левой части интервала (от a до c-1).
  6. Если элемент с индексом c меньше искомого значения v, то поиск продолжается в правой части интервала (от c+1 до b).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы