Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Основные алгоритмы обработки данных: сортировка данных. Простая и быстрая сортировка. Сортировка массива методом пузырька.



Читайте также:
  1. Hand-тест и его теоретический конструкт. Процедура обследования и интерпретация данных.
  2. I. ОСНОВНЫЕ ЗАДАЧИ ОРГАНОВ НАРОДНОГО КОНТРОЛЯ
  3. II. Основные аспекты экономического учения Смита
  4. II. ОСНОВНЫЕ ЗАДАЧИ НА 1938 ГОД
  5. II. Основные определения
  6. III. Области применения психодиагностики и ее основные задачи.
  7. III. Основные требования к форме и внешнему виду обучающихся

Одним из основных способов представления данных является массив. Массив даёт возможность реализации многих алгоритмов:

1. Ввод данных представленных виде таблицы значений

2. Вывод данных виде таблицы

3. Алгоритмы перестановки элементов внутри массива

4. Определение мах, min элементов массива, сумма элементов массива и т. д. Задачи поиска элементов массива

5. Сортировка элементов массива порядке возрастания и убывания.

Под сортировкой подразумевается процесс перестановки элементов с целью упорядочивания их в соответствии с каким-либо критерием.

Так как можно сравнивать переменные типов integer, real, char и string, то можно сортировать массивы этих типов.

Задача сортировки распространена в информационных системах и используется как предварительный этап задачи поиска, так как поиск в упорядоченном (отсортированном) массиве проводится намного быстрее, чем в неупорядоченном.

Существует много методов (алгоритмов) сортировки массивов. Рассмотрим два метода:

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

o Метод прямого обмена.

Сортировка методом прямого выбора:

1. Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый – на место минимального.

2. Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй – на место минимального.

3. И так далее до последнего элемента.

Program sortarr;

const

SIZE=5;

var

a: array[1..SIZE] of integer;

i: integer; {номер элемента, от которого ведётся поиск минимального элемента}

j: integer; {номер элемента, сравниваемого с минимальным}

buf: integer; {буфер, используемый при обмене элементов массива}

k: integer;

begin

writeln(‘Сортировка массива.’);

write(‘Введите ’, SIZE:3,’целых в одной строке ’);

writeln(‘через пробел и нажмите <Enter>’);

for k:= 1 to SIZE do read(a[k]);

writeln(‘Сортировка’);

for i:= 1 to SIZE-1 do

begin

{поиск минимального элемента в части массива от a[i] до a[SIZE]}

min:= i;

for j:= i+1 to SIZE do begin

if a[j]<a[min] then min:= j;

{поменяем местами a[min] и a[i]}

buf:= a[i];

a[i]:= a[min];

a[min]:= buf;

{выведем массив}

for k:=1 to SIZE do write(a[k],’ ‘);

writeln;

end;

end;

writeln(‘Массив отсортирован.’);

end.

Сортировка методом прямого обмена

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

program sortarr1;

Const

SIZE=5;

Var

a: array [1..SIZE] of integer;

i: integer; {счётчик циклов}

k: integer; {текущий индекс элемента массива}

buf: integer;

Begin

writeln(‘’Сортировка массива пузырьковым методом.);

write(‘Введите ’, SIZE:3,’ целых в одной строке через пробел ’);

writeln(‘и нажмите <Enter>’);

for k:=1 to SIZE do read(a[k]);

writeln(‘Сортировка’);

for i:=1 to SIZE-1


Дата добавления: 2015-07-11; просмотров: 107 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.016 сек.)