Сортировка массивов

 

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

Сортировка массивов –одно из наиболее важных действий над массивами в системах сбора и поиска информации, т.к. в отсортированных массивах гораздо легче можно найти нужную информацию. Существуют множества способов сортировки массивов. Один из способов сортировки массивов:

Линейная сортировка (сортировка отбором)

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

Пример программы линейной сортировки:

 

const n = 10;

var

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

i,j,m: integer;

begin

for i:= 1 to n do

begin

write('a[',i,']= ');

readln(a[i]);

end;

for i:= 1 to n - 1 do

for j:= i + 1 to n do

begin

if a[i] > a[j] then

begin

m:= a[i];

a[i]:= a[j];

a[j]:= m;

end;

end;

for i:= 1 to n do

writeln(a[i]);

readln;

end.

Сортировка обменами (метод "пузырька")

При сортировке обменами организуется последовательный перебор массива A1, A2, A3, …, AN и сравнение значений двух соседних элементов на выполнение условия Ai< Ai+1. При выполнении условия элементы меняются местами, и просмотр возобновляется с очередного элемента - Ai+1. По завершении цикла сравнений наибольший элемент массива придвигается на последнее место, а просмотр массива возобновляется с первого элемента при уменьшении на единицу количества просматриваемых элементов (до N-1 элемента), т.к. наибольший из оставшихся элементов после каждого просмотра будет оказываться в конце. Массив будет упорядочен до конца после просмотра, в котором участвуют только первый и второй элементы, следовательно, количество просмотров ограничено значением N-1.

program massor2;

var

j,i,m,n: integer;

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

begin

readln(n);

for i:= 1 to n do

readln(a[i]);

for i:= 1 to n-1 do

begin

for j:= 1 to n-1 do

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

begin

m:= a[j];

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

a[j+1]:= m;

end;

end;

for i:= 1 to n do

writeln('***** ',a[i]:3);

readln;

end.

 








Дата добавления: 2017-11-04; просмотров: 1910;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.