Метод бинарного поиска - C (СИ)
Формулировка задачи:
Не компилируется,никак не могу понять в чем проблема.Суть программы в поиске элемента в массиве
#include <stdio.h> #include <locale.h> const int N = 10; main() { setlocale(LC_ALL,"Russian"); int L = 0, R = N-1, m, A[N], flag = 0; scanf("%d", &N); int x; printf("Введите искомый элемент\n"); scanf( "%d", &x); while ( L <= R ) { m = (L + R) / 2; // середина интервала if ( A[m] == x ) { flag = 1; break; } if ( x < A[m] ) R = m - 1; else L = m + 1; } if ( flag ) printf ( "Нашли: A[%d]=%d", m, A[m] ); else printf ( "Такого элемента нет" ); }
Решение задачи: «Метод бинарного поиска»
textual
Листинг программы
int main()
Объяснение кода листинга программы
- Создается переменная
n
и инициализируется значением 10 - Создается массив
a
типа int размером 10 - В цикле от 0 до 9 заполняются значения массива
a
- Создается функция
bin_search
с прототипом int bin_search(int a[], int n, int x) - Внутри функции инициализируется переменная
low
значением 0 - Внутри функции инициализируется переменная
high
значениемn-1
- В цикле while (low <= high) выполняется следующая последовательность действий:
- Вычисляется средний индекс
mid
как (low + high) / 2 - Если значение массива
a
с индексомmid
равноx
, то возвращаетсяmid
- Если значение массива
a
с индексомmid
меньшеx
, то обновляется значение переменнойhigh
наmid-1
- Если значение массива
a
с индексомmid
большеx
, то обновляется значение переменнойlow
наmid+1
- Вычисляется средний индекс
- Если цикл while закончился, то возвращается -1
- Функция
bin_search
вызывается с аргументамиa
,n
,x
- Результат функции
bin_search
присваивается переменнойresult
- Выводится значение переменной
result
- Программа завершается
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д