С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
24 / 19 / 8
Регистрация: 21.04.2019
Сообщений: 494
1

Двоичный поиск в массиве

05.11.2021, 14:09. Показов 693. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нашёл код программы двоичного поиска. Она действительно выполняет двоичнный поиск или это нельзя назвать двоичным поиском? Если это корректный код, надо добавить вывод половины массива при каждом делении массива пополам, иначе исправить код и также сделать вывод массива при каждом делении элементов пополам.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <time.h>
using namespace std;
 
int main()
{
    srand(time(0)); //нужно чтобы рандом не повторялся
    setlocale(LC_ALL, "russian"); //можно писать на русском
    int M, k, i, n, m, trash;
    const int a = 16;
    int array[a]; //длина массива
    for (i = 0; i < a; i++) {
        array[i] = rand() % 100 - 50;
    }
    for (k = 0; k < a; k++) {
        for (n = 0; n < a; n++) {
            if (array[k] < array[n]) {
                trash = array[k];
                array[k] = array[n];
                array[n] = trash;
            }
        }
    }
    for (i = 0; i < a; i++) {
        cout << array[i] << " ";
    }
    cout << endl;
    cin >> M;
    bool flag = false;
    int l = 0; // левая граница
    int r = 15; // правая граница
    int mid;
    while ((l <= r) && (flag != true)) {
        mid = (l + r) / 2; // считываем срединный индекс отрезка [l,r]
        if (array[mid] == M) flag = true; //проверяем ключ со серединным элементом
        if (array[mid] > M) r = mid - 1; // проверяем, какую часть нужно отбросить
        else l = mid + 1;
    }
    if (flag) cout << mid;
    else cout << "-1";
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2021, 14:09
Ответы с готовыми решениями:

Двоичный поиск в упорядоченном массиве
Дан упорядоченный по неубыванию целочисленный массив и набор чисел ki. Требуется для каждого числа...

Сортировка и двоичный поиск в массиве.
Помогите чайнику изменить следующий код: // F_08_L_2.cpp: определяет точку входа для консольного...

Двоичный (бинарный) поиск элемента в двумерном массиве
Доброго времени суток. есть вот такое задание: Написать функцию, реализующую алгоритм бинарного...

Двоичный поиск в массиве выдает один и тот же ответ
выдаёт один и тот же ответ(( #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; int...

Бинарный (двоичный) поиск по алфавиту в упорядоченном массиве структур
Приветствую товарищей-программистов! Есть массив структур StructWords massiv. struct...

0
05.11.2021, 14:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2021, 14:09
Помогаю со студенческими работами здесь

Двоичный поиск места размещения нового элемента в упорядоченном массиве
Всем салют! Я с указателям первый раз работаю. Задача: Функция производит двоичный поиск...

Используя двоичный поиск определить, есть ли в массиве число равное заданному
Заполнить массив случайными числами и ввести число и отсортировать его. Ввести число X. Используя...

Используя двоичный поиск определить, сколько чисел, равных X, находится в массиве
Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск,...

Двоичный поиск
Формат входных данных В первой строке входных данных содержатся натуральные числа N и K...

Двоичный поиск
Помогите пожалуйста с двоичным поиском: нужно найти абитуриента с 287 баллами методом двоичного...

двоичный поиск
Подскажите, пожалуйста, в вопросе: Какое дополнительное требование к массиву может быть применено...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru