Форум программистов, компьютерный форум, киберфорум
Наши страницы

Нужно немного разобраться в бинарном поиске ,в С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ функция добавления элемента в список http://www.cyberforum.ru/cpp-beginners/thread971466.html
пытаюсь создать список с добавлением элемента в конец. void List::Add(int x){ element *temp=new element; temp->x=x; temp->NEXT=NULL; element *current=head; while...
C++ Работа с матрицей Здравствуйте можете помочь. Задана матрица F(9,3). определить, равны ли все элементы первого столбца соответствующим элементам главной диагонали. Если нет, то поменять их местами. На c++. http://www.cyberforum.ru/cpp-beginners/thread971461.html
Самолет может поднять 750 кг, если средний вес человека 70кг. Посчитать сколько человек может поднять самолет? C++
Напишите пожалуйста исходный код выражения задачи: Самолет может поднять 750 кг, если средний вес человека 70кг. Посчитать сколько человек может поднять самолет?
напишите пожалуйста исходный код выражения C++
Помогите пожалуйста написать исходный код арифметического выражения: у = (10-х)*3/0.5+х если х=7.8 Какой исходный код с++? заранее спасибо.
C++ как упростить программу ? http://www.cyberforum.ru/cpp-beginners/thread971416.html
С использованием операторов "printf" и "scanf" #include <conio.h> #include <iostream> #include <windows.h> #include <math.h> #include <clocale> using namespace std; int main()
C++ Дана целочисленная прямоугольная матрица.Определить номера строк и столбцов всех седловых точек матрицы Вот начал писать, а дальше не знаю что писать.помогите #include "stdafx.h" #include<iostream> #include<time.h> using namespace std; int _tmain(int argc, _TCHAR* argv) {const int n=3,m=4;... подробнее

Показать сообщение отдельно
VASYA_A
2 / 2 / 0
Регистрация: 11.09.2013
Сообщений: 129

Нужно немного разобраться в бинарном поиске ,в С++ - C++

07.10.2013, 19:23. Просмотров 195. Ответов 0
Метки (Все метки)

Здравствуйте.
Вообщем , есть код, нашёл такой пример:
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
int start,end,m;
    start=0;   //начало
    end=n;    //конец
    bool a=false;
    while(start<=end)
    {
        m=(start+end)/2;    //середина
        if(key<m) end=m-1;
        else 
        {
            if(key>m) start=m+1;
            else 
            {
                a=true;
                break;
            }
        }
    }
    if(a==true) 
    {
        cout<<"Element is found: "<<endl;
        cout<<"key: "<<key<<endl;
        cout<<"index: "<<m<<endl;
        cout<<"p "<<p<<endl;
    }
    else cout<<"Element not found"<<endl;
В принципе , я понимаю саму суть бинарного поиска , но вот читаю примеры , и не могу понять одну вещь :
в строке
C++
1
if(key>m) start=m+1;
- получается так ,что если ключ больше середины... а дальше , что мы делаем ??? почему это начало = середина +1 , почему именно 1 ?
и здесь такой же вопрос:
C++
1
if(key<m) end=m-1;
- можно ж просто написать
C++
1
end=m;
Помогите , пожалуйста , разобраться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.