Задача Сортировка 1
Задача[править]
Проверить, является ли данная последовательность целых чисел упорядоченной по убыванию. Если нет, упорядочить ее с помощью сортировки методом простого выбора.
Решение[править]
Программа[править]
uses Crt; type MyArray = array [1..100] of integer; var n:integer; a:MyArray; procedure InPut(var a:MyArray; n:integer); {Вводим массив} var i:integer; begin for i:=1 to n do begin write('a[',i,']='); readln(a[i]); end; end; procedure OutPut(var a:MyArray; n:integer); {Выводим массив} var i:integer; begin for i:=1 to n-1 do write(a[i],' '); writeln(a[n]); end; procedure Sort(var a:MyArray; n:integer); {Сортируем массив} var i,j,k,temp:integer; begin for i:= n downto 2 do begin k:=i; {считаем что элемент i минимален} for j := 1 to i do {находим минимальный элемент} if a[k] > a[j] then k:=j; writeln('Меняем минимальный a[',k,']=',a[k],' и последний a[',i,']=',a[i]); temp:=a[i]; a[i]:=a[k]; a[k]:=temp; OutPut(a,n); {выводим массив после очередного этапа сортировки} end; end; function Check_Array(var a:MyArray;n:integer):boolean; {проверка упорядочености по убыванию} var i:integer; flag:boolean; begin i:=1; flag:=true; while (i<n) and flag do if a[i]<a[i+1] then flag:=false else Inc(i); Check_Array:=flag; end; begin clrscr; write('Введите количество элементов массива n:'); readln(n); InPut(a,n); writeln('== Исходный массив =='); OutPut(a,n); if Check_array(a,n) then writeln('Массив упорядочен по убыванию') else begin writeln('== Сортировка =='); Sort(a,n); writeln('== Отсортированый массив =='); OutPut(a,n); end; readln; end.
Примеры работы[править]
Пример №1
Введите количество элементов массива n:5 a[1]=10 a[2]=30 a[3]=20 a[4]=40 a[5]=50 == Исходный массив == 10 30 20 40 50 == Сортировка == Меняем минимальный a[1]=10 и последний a[5]=50 50 30 20 40 10 Меняем минимальный a[3]=20 и последний a[4]=40 50 30 40 20 10 Меняем минимальный a[2]=30 и последний a[3]=40 50 40 30 20 10 Меняем минимальный a[2]=40 и последний a[2]=40 50 40 30 20 10 == Отсортированый массив == 50 40 30 20 10
Пример №2
Введите количество элементов массива n:4 a[1]=9 a[2]=7 a[3]=3 a[4]=2 == Исходный массив == 9 7 3 2 Массив упорядочен по убыванию