Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Одним из основных способов представления данных является массив. Массив даёт возможность реализации многих алгоритмов:Ввод данных представленных виде таблицы значений
1. Вывод данных виде таблицы2Алгоритмы перестановки элементов внутри массива3Определение мах, min элементов массива, сумма элементов массива и т. д. Задачи поиска элементов массива4Сортировка элементов массива порядке возрастания и убывания.
Под сортировкой подразумевается процесс перестановки элементов с целью упорядочивания их в соответствии с каким-либо критерием.
Так как можно сравнивать переменные типов integer, real, char и string, то можно сортировать массивы этих типов.
Задача сортировки распространена в информационных системах и используется как предварительный этап задачи поиска, так как поиск в отсортированном массиве проводится намного быстрее, чем в неупорядоченном.
Существует много методов (алгоритмов) сортировки массивов. Рассмотрим два метода:1Метод прямого выбора.2Метод прямого обмена.
Сортировка методом прямого выбора:
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.
Дата публикования: 2015-01-23; Прочитано: 327 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!