Хелпикс

Главная

Контакты

Случайная статья





Лабораторная работа № 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.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.