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

Существует много способов сортировки массива по возрастанию. Самый понятный и простой (но далеко не самый быстрый!) – сортировка обменом. Суть его в следующем: Программа ищет наименьший элемент и обменивает его с первым. Затем ищет наименьший из оставшихся и обменивает со вторым… Для обмена мы пользуемся тем, что, кроме массива, наименьшее число находится ещё в переменной min, поэтому на его место в массиве мы копируем число из начальных элементов массива, а туда копируем число из переменной min.

 

program sortirovka_obmenom; var a:array[1..20] of integer; i,k,min,Nmin:integer; begin randomize; {Сначала заполним массив} for i:=1 to 20 do begin a[i]:=1+random(99); write(a[i]:3); end; writeln; {Отсортируем по возраст. методом обмена} for i:=1 to 19 do begin{i показывает начало поиска} min:=a[i]; Nmin:=i; {просмотрим все остальные (после i)} for k:=i+1 to 20 do if a[k]<min then begin min:=a[k]; Nmin:=k; end; {Нашли минимальное число. Обменяем его с i-м} a[Nmin]:=a[i]; a[i]:=min; end; {Теперь распечатаем отсортированный массив} for i:=1 to 20 do write(a[i]:3); end.

 

 


Второй по простоте (и тоже медленный) способ – сортировка методом пузырька. Суть её в том, что при первом проходе каждый элемент сравнивается со следующим, и если порядок неправильный, они обмениваются. Для обмена используется переменная b, в которой временно сохраняется число. После первого прохода наибольший элемент уже на своём месте (в конце массива), поэтому второй проход делается до предпоследнего элемента, и т.д. … В приведенном фрагменте программы, сортирующем массив a по возрастанию методом пузырька, первый цикл считает проходы, а его счётчикi указывает, до какого элемента делать проверку (поэтому i уменьшается).

 

 









Дата добавления: 2014-12-18; просмотров: 837;


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

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

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

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