Задано: массив А=(a1,a2,...an).
Требуется: расположить элементы массива А в порядке возрастания (убывания).
Существует много различных методов. Рассмотрим один из них, основанный на поиске минимального (максимального) элемента массива или его части.
Исходные данные:
N - размер массива;
A - массив размером N;
Результат:
А - массив, упорядоченный по возрастанию;
Вспомогательные переменные:
P - переменная для хранения промежуточного значения минимального элемента;
K - индекс минимального элемента;
I - индекс элемента упорядоченного массива (управляющая переменная внешнего цикла);
J - индекс элемента части массива, в котором ищется минимальный элемент (управляющая переменная внутреннего цикла).
Вначале найдем минимальный элемент массива и поменяем его местами с первым элементом, затем определим минимальный элемент из оставшихся элементов (кроме первого) и поменяем его местами со вторым элементом.
Procedure SORTIROV (n : integer; A :mas; var A : mas; var K : integer);
{ где mas должен быть описан в главной программе, см 7.1.}
{ процедура упорядочивания одномерного массива по возрастанию}
Var p : real ; i, j : integer ; { локальные переменные }
begin
for i := 1 to n - 1 do
begin P := A [ i ] ; k := i ;
for j := i + 1 to n do
If A [ i ] < P then begin P := A [ i ] ; k := j end;
A [ k ] := A [ i ] ; A [ i ] := P
end
end;
После нахождения минимального из последних двух элементов и размещения его на предпоследнем месте на последнем автоматически останется самый большой элемент.
Опубликовал Kest
November 12 2008 21:18:31 ·
0 Комментариев ·
9382 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.