Метод бинарного поиска - 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()

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

  1. Создается переменная n и инициализируется значением 10
  2. Создается массив a типа int размером 10
  3. В цикле от 0 до 9 заполняются значения массива a
  4. Создается функция bin_search с прототипом int bin_search(int a[], int n, int x)
  5. Внутри функции инициализируется переменная low значением 0
  6. Внутри функции инициализируется переменная high значением n-1
  7. В цикле while (low <= high) выполняется следующая последовательность действий:
    • Вычисляется средний индекс mid как (low + high) / 2
    • Если значение массива a с индексом mid равно x, то возвращается mid
    • Если значение массива a с индексом mid меньше x, то обновляется значение переменной high на mid-1
    • Если значение массива a с индексом mid больше x, то обновляется значение переменной low на mid+1
  8. Если цикл while закончился, то возвращается -1
  9. Функция bin_search вызывается с аргументами a, n, x
  10. Результат функции bin_search присваивается переменной result
  11. Выводится значение переменной result
  12. Программа завершается

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


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

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

9   голосов , оценка 3.667 из 5
Похожие ответы