Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 27.03.2017
Сообщений: 15
1

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

15.05.2017, 10:20. Просмотров 1241. Ответов 4
Метки нет (Все метки)


Есть рекурсия бинарного поиска с проверкой на наличия числа, но с уже даным массивом сделать авто заполнения массива до числа n
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
#include <iostream>
 
using namespace std;
 
int BinSearch(const int* arr, int count, int key);
 
int main()
{
    const int n = 5;
    int arr[n] = {1, 2, 3, 4, 5};
    int key;
    
    cout << "Hislo dlia poiska: "<<endl;
    cin >> key;
 if(BinSearch(arr, n, key)==n){
 cout<<"Netu hisla";}
 else{cout<<BinSearch(arr, n, key)+1;}
 
    
    return 0;
}
 
int BinSearch(const int* arr, int count, int key) 
{
  int l = 0;            // нижняя граница
  int u = count - 1;    // верхняя граница
 
  while (l <= u) {
    int m = (l + u) / 2;
    if (arr[m] == key) return m;
    if (arr[m] < key) l = m + 1;
    if (arr[m] > key) u = m - 1;
  }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2017, 10:20
Ответы с готовыми решениями:

Создать программу для поиска первого нечетного элемента в заданном массиве методом бинарного поиска
Бинарный поиск Первый нечетный, помогите пожалуйста.

Нахождения элемента массива методом бинарного поиска
Здравствуйте. Помогите пожалуйста с программой на с++. Сама программа по сути легкая, но как тут...

Методом бинарного поиска найти элемент массива и его положение
Ввести два массива. Размерность массива вводится случайным образом. Элементы массива (целые,...

Поиск минимального элемента массива с помощью бинарного и линейного поиска
Помогите пожалуйста. Нужно реализовать способ поиска минимального элемента в одномерном массиве с...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
4
с++
1253 / 498 / 220
Регистрация: 15.07.2015
Сообщений: 2,509
15.05.2017, 10:33 2
в чем проблема?
0
0 / 0 / 1
Регистрация: 27.03.2017
Сообщений: 15
15.05.2017, 11:51  [ТС] 3
Мне надо сделать чтоб массив автоматически заполнялся вот так 1,2,3,4...n

Добавлено через 2 минуты
Antikl, Мне надо сделать чтоб массив автоматически заполнялся вот так 1,2,3,4...n
0
с++
1253 / 498 / 220
Регистрация: 15.07.2015
Сообщений: 2,509
15.05.2017, 12:12 4
Лучший ответ Сообщение было отмечено Denkir27 как решение

Решение

for(int i = 0; i < n; i++)
arr[i] = i+1;
0
0 / 0 / 1
Регистрация: 27.03.2017
Сообщений: 15
15.05.2017, 17:50  [ТС] 5
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
#include <iostream> 
using namespace std; 
int BinSearch(int* arr, int count, int key); 
int main(){ 
int n; 
cout<<"Vvedite dlina maciva: "; 
cin>>n; 
int* arr = new int [n]; 
int key; 
for (int i=0; i<n; i++){ 
arr[i]=i+1; 
cout<<arr[i]<<" "; 
} 
cout<<endl; 
cout << "Hislo dlia poiska: "; 
cin >> key; 
if(BinSearch(arr, n, key)==n){ 
cout<<"Netu hisla"; 
} 
else{cout<<"Nomer hisla: "<<BinSearch(arr, n, key)+1;} 
return 0; 
} 
int BinSearch(int* arr, int count, int key) 
{ 
int l = 0; 
int u = count - 1; 
while (l <= u) { 
int m = (l + u) / 2; 
if (arr[m] == key) return m; 
if (arr[m] < key) l = m + 1; 
if (arr[m] > key) u = m - 1; 
} 
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2017, 17:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Найти заданный элемент массива,используя метод бинарного поиска
Найти заданный элемент массива,используя метод бинарного поиска.

Написать программу бинарного поиска элемента массива равного заданному значению
Помогите написать программу бинарного поиска элемента массива равного заданному значению, в которой...

Методом бинарного поиска определите количество элементов массива, равных значению k
Написать код решения поставленной задачи. Элементы массивов вводятся пользователем вручную с...

Итератор для бинарного дерева поиска.
Господа, нужен совет знатоков. Бинарное дерево поиска представлено следующей структурой. ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.