07.10.2013, 19:23. Просмотров 201. Ответов 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; |
|
В принципе , я понимаю саму суть бинарного поиска , но вот читаю примеры , и не могу понять одну вещь :
в строке
- получается так ,что если ключ больше середины... а дальше , что мы делаем ??? почему это начало = середина +1 , почему именно 1 ?
и здесь такой же вопрос:
- можно ж просто написать
Помогите , пожалуйста , разобраться.