Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по праграм 2 курс.docx
Скачиваний:
13
Добавлен:
23.11.2019
Размер:
56.39 Кб
Скачать
  1. Метод прямого обмена ..Пузырька

For i:=1 to n do begin

For j:=1 to n-i do

if a[j]>a[j+1] then begin

p:=a[j];

a[j]:=a[j+1];

a[j+1]:=p

end;

В основе алгоритма лежит обмен соседних элементов массива. Каждый элемент массива, начиная с первого, сравнивается со следующим, и если он больше следующего, то элементы меняются местами. Таким образом, элементы с меньшим значением продвигаются к началу массива (всплывают), а элементы с большим значением — к концу массива (тонут). Поэтому данный метод сортировки обменом иногда называют методом "пузырька". Этот процесс повторяется столько раз, сколько элементов в массиве, минус единица.

следует отметить, что максимальное необходимое количество циклов проверки соседних элементов массива равно количеству элементов массива минус один. Вместе с тем возможно, что массив реально будет упорядочен за меньшее число циклов. 

  1. Метод прямого выбора:

начиная с первой записи таблицы, осуществляется поиск элемента,имеющего наименьшее значение ключа. После того, как этот элемент найден, он меняется местами с первой записью в таблице. В результате такой перестановки запись с наименьшим значением ключа помещается в первую позицию в таблице. Затем, начиная со второго элемента таблицы, осуществляется поиск второго наименьшего ключа. Найденный элемент меняется местами со вторым элементом таблицы. Этот процесс продолжается до тех пор, пока все записи не будут расположены в порядке возрастания кодов ключа.

For i:=1 to n-1 do begin

R:=i;

X:=a[i];

For j:=i+1 to n do

if a[j]<x then begin r:=j; x:=a[r] end;

A[r]:=a[i];

A[i]:=x

End;

Writeln (‘результат’);

For i:=1 to n do write (a[i],’ ‘)

  1. Метод прямого включения

For i:=2 to n do begin

X:=a[i];

A[0]:=X;

J:=i;

While X<a[j-1] do begin

a[j]:=a[j-1];

Dec(j)

End;

A[j]:=x

End;

В методе прямого включения идея заключается в следующем, мы шаг за шагом идем по массиву и каждый элемент последовательно вставляем по убыванию или возрастанию в нужную нам позицию. Соответственно, что бы упорядочить N элементов мы должны будем сделать ровно N шагов.

  1. Алгоритмы поиска. Линейный поиск

Задача поиска требуемого элемента в массиве а[i], i=1..n заключается в нахождении индекса i, удовлетворяющего условию а[i]=Х. Х называют ключом поиска. Различают:

-Линейный поиск

-Бинарный поиск

Линейный поиск используется, когда нет никакой дополнительной информации о разыскиваемых данных.

i:=1; n1:=n+1;

While (i<n1) and (a[i]<>x) do i:=i+1;

If i=n1 then writeln (‘net elementa’ ) else writeln (‘ element=‘, a[i]);

Линейным поиском называется самый простой подход, при котором элементы контейнера последовательно сравниваются с установленным значением до тех пор, пока искомый элемент не будет найден. Для поиска записи среди N элементов может потребоваться N сравнений (в среднем N/2). Линейный поиск используется для небольших несортированных последовательностей