"Деление массива пополам"
Добавлено: 20 янв 2008, 13:47
Дана последовательность по возрастанию (а1..а15) и число B. Методом "деления пополам" определить номер элемента, численное значение которого совпадает с B.
Имеется следующий алгоритм:
Как-то на протяжении семестра записал его, теперь возник вопрос:
почему перед первой проверкой совпадения a и b устанавливаем i именно на 10?
да и вообще у меня большие сомнения в правильности написания алгоритма..
Имеется следующий алгоритм:
Код: Выделить всё
const n=15;
var b,i:integer;
a:array[1..n] of integer;
begin
readln(b);
for i:=1 to n do readln(a[i]);
[B]i:=10;[/B]
while a[i]<>b do
if a[i]<b then i:=i/2 else i:=i+i/2;
writeln(i);
end.
почему перед первой проверкой совпадения a и b устанавливаем i именно на 10?
да и вообще у меня большие сомнения в правильности написания алгоритма..