ВВЕДИТЕ 6 ЭЛЕМЕНТОВ МАССИВА
5 12 48 48 44 6 48 12 5 48 44 6
Рис. 6.3. Результат работы PRG6_3 Задача 6.4 Дан массив чисел. Расставить их по убыванию. Существует много алгоритмов для сортировки массивов. Рассмотрим один из них, который называется сортировкой с помощью прямого выбора (выделения). Суть его очень проста и может быть описана так. 1. Выбирается наибольший элемент. 2. Меняем его местами с первым элементом. 3. Повторяем процесс с оставшимися N - 1 элементами, N - 2 элементами и т. д., до тех пор, пока не останется один, самый маленький элемент. Как видно из описания алгоритма, сама сортировка осуществляется с помощью двух вложенных циклов: FOR J:= 1 ТО N-1 DO BEGIN NEW:= MAS[N]; К:= N; FOR I:= N DOWNTO J DO IF MAS[I]>NEW THEN BEGIN K:=l; NEW:= MAS[I] END; MAS[K]:= MAS[J]; MAS[J]:= NEW; END;
Цикл FOR J:= 1 TO N-1 DO определяет место J,на которое будет поставлен наибольший элемент, найденный в цикле: FOR I:= N DOWNTO J DO. PROGRAM PRG6_4; CONST M = 100; VAR MAS: ARRAY[1..M] OF INTEGER; I, J, K, NEW, N: INTEGER; BEGIN WRITE('BBEДИTE РАЗМЕР МАССИВА N = '); READLN(N); WRITELN('BBEДИTE ', N,' ЭЛЕМЕНТОВ МАССИВА'); FOR I:= 1 TO N DO READ(MAS[I]); WRITELN; FOR J:= 1 TO N-1 DO BEGIN NEW:= MAS[N]; K:=N; FOR I:= N DOWNTO J DO IF MAS[I]>NEW THEN BEGIN K:=l; NEW:= MAS[I] END; MAS[K]:= MAS[J]; MAS[J]:= NEW; END; FOR I:= 1 TO N DO WRITE(MAS[I]: 4); WRITELN END. Для решения задачи: - формируем тело программы и описываем переменные; - вводим длину массива N, значение элементов массива; - последовательно, справа налево, просматриваем элементы и находим наибольший элемент NEW:= MAS[I], запоминая его порядковый номер К:= I; - меняем местами первый элемент и найденный; - выводим результат. Переменные: MAS - массив чисел; N - размер массива; I, J - переменные циклов; К - порядковый номер наибольшего элемента; NEW - значение наибольшего элемента.
ВВЕДИТЕ РАЗМЕР МАССИВА N = 8
|