Учебно-методическое пособие. Алматы, 2017 ббк



бет86/106
Дата03.01.2022
өлшемі483.39 Kb.
#451845
түріУчебно-методическое пособие
1   ...   82   83   84   85   86   87   88   89   ...   106
УЧЕБНИКПаскаль(100217)

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

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

Такая сортировка называется «Шейкерной»(челночной).

procedure Shaker(var item: DataArray; count:integer);

var


j, k, l, r: integer;

x: DataItem;

begin

l := 2; r := count; k := count;



repeat

for j := r downto l do

if item[j-1] then

begin { обмен }

x := item[j-1];

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

item[j] := x;

k := j;


end;

l := k+1;

for j := l to r do

if item[j-1]>item[j] then

begin { обмен }

x := item[j-1];

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

item[j] := x;

k := j;

end;


r := k-1;

until l>r

end; { конец челночной сортировки }

Задание


  1. Используя процедуру Bubble написать программу SortB сортировки массива целых чисел. Числа считываются из файла подготовленного программой.

  2. Модернизировать программу сортировки используя подпрограмму Bubble1. провести трассировку программы SortB1. Сравнить с работой программы SortB.

  3. Внести изменения в подпрограмму Shaker для уменьшения ненужных просмотров массива.

  4. Написать программу SortSH использующей метод «Шейкерной» сортировки.







Достарыңызбен бөлісу:
1   ...   82   83   84   85   86   87   88   89   ...   106




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет