Другие языки программирования и технологии

помогите плиз написать программу на паскале...тема массивы...нужно использовать поиск деления пополам!!!нужно срочно!

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

var critValue: real;
arrValues: array[1..100] of real;
subArray: array [1..50] of real;
midValue: real;
arrCount: integer;
i: integerl;
j: integerl;
stIndex: integer;
endIndex: integer;
value: real;
begin
for i:=1 to 100 do
for j:=1 to 99 do
if arrValues[j] > arrValues[j+1] then
begin
value := arrValues[j];
arrValues[j] := arrValues[j+1];
arrValues[j+1] := value;
end;

arrCount := 100;
repeat
midValue := arrValues[arrCount div 2];
if (critValue > midValue) then
begin
stIndex := arrCount div 2;
endIndex := arrCount;
end
else if (critValue < midValue) then
begin
stIndex := 1;
endIndex := arrCount div 2;
end
else
begin
writeln('Element found!');
halt(0);
end;

j := 0;
for i := stIndex to endIndex do
begin
i := i + 1;
subArray := arrValues[j];
end;

arrCount := arrCount div 2;

if (arrCount = 0) then
begin
writeln("Element is not found!");
halt(0);
end;

for i:=1 to arrCount do
arrValues := subArray;
until true;
end.

с синтаксисом могут быть проблемы, компилятора нет, а писал на паскале последний раз в лицее.. . лет 10 назад.. . но смысл примерно таков.
Иван Шашков
Иван Шашков
307
Лучший ответ
Sedoi . А тебе не кажется, что уже на этапе сортировки мы бы обязательно нашли наш элемент?
Метод деления пополам применим только для УЖЕ ОТСОРТИРОВАННЫХ массивов, поэтому сортировать не надо.
Станислав Гаврилов спасибо конечно за лекцию
но программа не выполняется
Напиши задание полностью..