|
|||
Лабораторная работа № 3. Ход работы
21.03.13
Лабораторная работа № 3
Тема: Реализация алгоритмов поиска. Цель: приобрести навыки реализации на языке программирования основных алгоритмов поиска в линейных структурах, изучить особенности алгоритмов последовательного и бинарного (двоичного) поиска, провести их сравнительный анализ.
Ход работы 1. Program Poisk; uses Crt; const N=20; var A:array[1..N] of integer; x, i, k, z, z1: integer; begin ClrScr; Randomize; for i:=1 to N do begin A[i]:=Random(40); write(A[i]:8); end;
writeln ('Введите ключ поиска: '); readln (x);
k:=0; for i:=1 to N do if A[i]=x then BEGIN z:=i; k:=k+1; end;
if k>1 then begin for i:=N downto 1 do if A[i]=x then z1:=i; end;
if k=0 then writeln ('Элемента нет') else writeln ('Элемент под № ',z);
if z1<>0 then writeln ('Элемент под № ',z1);
readln; end.
2.
3. Program Poisk_Binary; Uses crt; const N=10; var A:array[1..N] of byte; Left,Right,m,i,j,b:integer; begin Clrscr; writeln ('Введите упорядоченный по возрастанию массив (через Enter):'); for i:=1 to n do readln (A[i]); writeln ('Введите ключ поиска:'); readln (b); Left:=1;Right:=N;
while Left<Right do begin m:=(Left+Right) div 2; if A[m]<b then Left:=m+1 else Right:=m; end; if (Right<>N) or ((Right=N) and (a[N]=b)) then writeln ('Элемент найден,его позиция:', Right) else writeln ('Элемент не найден!'); end.
|
|||
|