Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Шпоры по МПиПА / Массивы / Поиск / Двоичный поиск / Pascal / Исходник / binary_Search
.pas Program search;
const
max = 10000;
type myArray = array[0..max] of integer;
var dimension, element, i : integer;
arr,sortArray : myArray;
function binarySearch( arr : myArray; element : integer; length : integer ) : integer;
var L, R, i : integer;
find : boolean;
begin
L := 0;
R := length - 1;
find := false;
while ( (L <= R) and (not find) ) do begin
i := (L+R) div 2;
if arr[i] = element then find := true
else if element < arr[i] then R := i - 1
else L := i + 1;
end;
if arr[i] = element then binarySearch := i
else binarySearch := -1;
end;
function easySort( arr : myArray; length : integer ) : myArray;
var i, j, item : integer;
begin
for i := 1 to length-1 do begin
item := arr[i];
j := i;
while item < arr[j-1] do begin
arr[j] := arr[j-1];
j := j-1;
end;
arr[j] := item;
end;
easySort := arr;
end;
begin
writeln('Binary search.');
write('Enter array dimension: '); readln( dimension );
write('Enter '); write( dimension ); write(' elements: ');
for i := 0 to dimension-1 do
read(arr[i]);
arr := easySort( arr, dimension );
write('Sorting array: ');
for i := 0 to dimension-1 do begin
write(arr[i]); write(' '); end; writeln;
write('Enter searching element: '); readln( element );
write('Position of element '); write( element ); write(' is '); writeln( binarySearch( arr,element, dimension ) );
writeln('Press any key to continue...');
readln;
end.
const
max = 10000;
type myArray = array[0..max] of integer;
var dimension, element, i : integer;
arr,sortArray : myArray;
function binarySearch( arr : myArray; element : integer; length : integer ) : integer;
var L, R, i : integer;
find : boolean;
begin
L := 0;
R := length - 1;
find := false;
while ( (L <= R) and (not find) ) do begin
i := (L+R) div 2;
if arr[i] = element then find := true
else if element < arr[i] then R := i - 1
else L := i + 1;
end;
if arr[i] = element then binarySearch := i
else binarySearch := -1;
end;
function easySort( arr : myArray; length : integer ) : myArray;
var i, j, item : integer;
begin
for i := 1 to length-1 do begin
item := arr[i];
j := i;
while item < arr[j-1] do begin
arr[j] := arr[j-1];
j := j-1;
end;
arr[j] := item;
end;
easySort := arr;
end;
begin
writeln('Binary search.');
write('Enter array dimension: '); readln( dimension );
write('Enter '); write( dimension ); write(' elements: ');
for i := 0 to dimension-1 do
read(arr[i]);
arr := easySort( arr, dimension );
write('Sorting array: ');
for i := 0 to dimension-1 do begin
write(arr[i]); write(' '); end; writeln;
write('Enter searching element: '); readln( element );
write('Position of element '); write( element ); write(' is '); writeln( binarySearch( arr,element, dimension ) );
writeln('Press any key to continue...');
readln;
end.