Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
aleksandr_00
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 48
#1

методы поиска(бинарный поиск/С++) - C++

08.01.2011, 20:01. Просмотров 1318. Ответов 2
Метки нет (Все метки)

методы поиска(бинарный поиск/С++)
Я не проф.,плз ответы(у мя последний зачё1т)
тут всего 3вопросы
заранее спс
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
#include <iostream>
using namespace std;
 
int BinSearch(int *M, int n, int k);    //(int *M, int n, int k)-что зад.в качестве параметров?!
 
int main()
{
    const int n=5;                 // что обозначает?
    int A[n];
    int x;
 
    for (size_t i=0; i<n; i++)
    {
        cout << "Please, input A[" << i+1 << "] = ";
        cin >> A[i];
    }
 
    cout << "find this -> ";
    cin >> x;
 
    cout << BinSearch(A, n, x); 
    return 0;
}
 
int BinSearch(int *M, int n, int k)
{
    int L = 0;
    int R = n; 
    int m;
    int z = 0;               //зачем нужна перем.?
 
    while (L<R)    {
        z++;
        m = (L+R)/2;           
if (k > M[m]) L = m; 
        if (k < M[m]) R = m;
        if (k == M[m]) break;   
    }
    return 0;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2011, 20:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос методы поиска(бинарный поиск/С++) (C++):

Бинарный поиск (Сложность двоичного поиска) - C++
Вася загадал число от 1 до N. За какое наименьшее количество вопросов (на которые Вася отвечает &quot;да&quot; или &quot;нет&quot;) Петя может угадать Васино...

Поиск числа в двумерном массиве (бинарный поиск) - C++
Произвожу поиск элемента в массиве двумя способами: линейным(последовательным) поиском и бинарным(двоичным). Первый работает на ура. Второй...

Методы поиска элементов. - C++
Прошу предоставить информацию или ссылку на тему, содержащую сведения о следующих методах поиска элементов: Последовательный,бинарный,с...

Бинарный поиск - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;algorithm&gt; #include &lt;string&gt; #include &lt;vector&gt; using namespace std; ...

Бинарный поиск - C++
Реализуйте алгоритм бинарного поиска. Входные данные В первой строке входных данных содержатся натуральные числа N и K . Во второй...

Бинарный поиск - C++
Вообщем, написал бинарный поиск, а он не работает для ключа со значением 9, может кто объяснить, как решить эту проблему? А ещё я не совсем...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.01.2011, 21:38 #2
Цитата Сообщение от aleksandr_00 Посмотреть сообщение
const int n=5; // что обозначает?
задает количество элементов в массиве


Цитата Сообщение от aleksandr_00 Посмотреть сообщение
int BinSearch(int *M, int n, int k); //(int *M, int n, int k)-что зад.в качестве параметров?!
1-й параметр - массив в котором будем искать
2-й параметр - количество элементов в массиве
3-й параметр - число которое будем искать

Добавлено через 2 минуты
и что-то ф-я поиска возвращает не то
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
08.01.2011, 21:42 #3
Цитата Сообщение от aleksandr_00 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int BinSearch(int *M, int n, int k)
{
    int L = 0;
    int R = n; 
    int m;
    int z = 0;               //зачем нужна перем.?
 
    while (L<R)    {
        z++;
        m = (L+R)/2;           
if (k > M[m]) L = m; 
        if (k < M[m]) R = m;
        if (k == M[m]) break;   
    }
    return 0;
Думается так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int BinSearch(int *M, int n, int k)
{
    int L = 0;
    int R = n; 
    int m;
    int z = 0;               //зачем нужна перем.?
 
    while (L<R)    {
        z++;
        m = (L+R)/2;           
if (k > M[m]) L = m; 
        if (k < M[m]) R = m;
        if (k == M[m]) return m;   
    }
    return -1;

Цитата Сообщение от aleksandr_00 Посмотреть сообщение
int BinSearch(int *M, int n, int k); //(int *M, int n, int k)-что зад.в качестве параметров?!
В качестве параметров заданы:
1) указатель на инт, этот параметр принимает массив чисел
2) переменную типа инт, принимает размер массива
3) переменную типа инт, принимает искомое значение

Цитата Сообщение от aleksandr_00 Посмотреть сообщение
const int n=5; // что обозначает?
Константа типа инт со значением 5, в данном случае используется для задания размера массива
Цитата Сообщение от aleksandr_00 Посмотреть сообщение
int z = 0; //зачем нужна перем.?
Не зачем.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2011, 21:42
Привет! Вот еще темы с ответами:

Бинарный поиск - C++
Реализовать алгоритм бинарного поиска количества нулевых элементов двумерного динамического массива. Это вообще возможно? Пробовал...

Бинарный поиск - C++
Добрый день , возникла проблема с бинарным поиском . Я его просто нашел в интернете и вставил в программу не много отредактировав . Вобщем...

Бинарный поиск c++ - C++
1) последовательного поиска максимального элемента в одномерном динамическом массиве; 2) бинарного поиска количества нулевых элементов...

Бинарный поиск - C++
Написал программу бинарного поиска элемента v. Не могу понять в чем ошибка, не считает количество элементов массива удовлетворяющий...


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

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

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