Алгоритм бинарного поиска в массиве - C (СИ)

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

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

Дайте пожалуйста алгоритм бинарного поиска в массиве. Заранее спасибо !

Решение задачи: «Алгоритм бинарного поиска в массиве»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
void main()
{  
setlocale(LC_ALL,"Rus");
printf("                             Бинарный поиск                            \n");
int i, n, key, begin, end, c; bool x=false;
printf("Размер массива > ");
scanf("%d", &n);
int *mas=(int*)malloc(n*n *sizeof(int));
printf("Искомый элемент > ");
scanf("%d", &key);
for (i=0; i<n; i++)
{
mas[i]=n*i;
printf (" %d \n", mas[i]); 
}
begin=0; end=n;
while (begin<end)
{
c=begin+(end-begin)/2;
  if (key<mas[ c ]) end=c;
  else if (key>mas[ c ]) begin=c+1;
  else { x=true; break; }
}
  if (x==true) printf("Элемент найден %d \n", x);
  else printf("Элемент не найден \n");
  delete []mas;
}

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

  1. Подключение необходимых библиотек для работы с языком C
  2. Установка русской локали для вывода информации
  3. Вывод приветствия и названия алгоритма
  4. Объявление переменных: i, n, key, begin, end, c и x со значением false
  5. Запрос размера массива у пользователя
  6. Выделение памяти под массив с динамическим размером
  7. Запрос искомого элемента у пользователя
  8. Заполнение массива значениями по формуле n*i
  9. Вывод заполненного массива на экран
  10. Инициализация начального и конечного индексов для поиска
  11. Вход в цикл while, который будет выполняться до тех пор, пока begin меньше или равно end
  12. Вычисление центрального индекса c как (end-begin)/2 + begin
  13. Проверка условия: если искомый элемент меньше значения mas[c], то обновление end = c
  14. Иначе, если искомый элемент больше значения mas[c], то обновление begin = c+1
  15. Если искомый элемент равен значению mas[c], то установка x в true и выход из цикла while с помощью оператора break
  16. После цикла while проверка значения x. Если x равно true, то вывод сообщения об успешном поиске и значения x. Иначе, вывод сообщения об отсутствии искомого элемента.
  17. Освобождение памяти, выделенной под массив.

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


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

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

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