Домашние задания: Информатика

Информатика 9 класс

Считая, что массив из N элементов отсортирован по возрастанию, написать программу (на языке Pascal) , которая "быстро" отсортирует его по убыванию. Количество перестановок не должно быть больше чем N/2 +1.
Начнем с того, что массив у нас уже отсортирован по возрастанию.
"Быстрая" сортировка заключается в том, что (N/2) раз повторяется операция перестановки:
for var i := 1 to (N div 2) do
begin
temp := a[i]; a[i] := a[N - i + 1]; a[N - i + 1] := temp;
Col := Col + 1;
end;
в которой, собственно говоря , еще и считается количество Col перестановок в массиве.

Как всегда, у меня PascalABC:

const N = 14;
var Col, temp : integer;
begin
Col := 0;
var A : array [1 .. N] of integer = (4, 6, 7, 9, 11, 15, 21, 33, 34, 50, 55, 63, 77, 88);
WriteLn ( ' Исходный массив: ' );
for var i := 1 to N do Write (A[i]:5);
for var i := 1 to (N div 2) do
begin
temp := a[i]; a[i] := a[N - i + 1]; a[N - i + 1] := temp;
Col := Col + 1;
end; WriteLn;
Writeln ( ' Отсортированный массив:');
for var i := 1 to N do Write (A[i]:5); WriteLn;
WriteLn ( ' Количество элементов в массиве = ', N);
WriteLn ( ' Количество перестановок в массиве = ', Col);
end.
Анастасия ))))
Анастасия ))))
73 229
Лучший ответ
Вот пример программы на языке Pascal, которая сортирует массив по убыванию с помощью алгоритма сортировки пузырьком:
 program sort_array; 
const
N = 10;
var
a: array[1..N] of integer;
i, j, temp: integer;
begin
// Заполнение массива случайными числами
for i := 1 to N do
a[i] := random(100);

// Сортировка массива по убыванию
for i := 1 to N - 1 do
for j := 1 to N - i do
if a[j] < a[j + 1] then
begin
temp := a[j];
a[j] := a[j + 1];
a[j + 1] := temp;
end;

// Вывод отсортированного массива
for i := 1 to N do
write(a[i], ' ');
end.
Эта программа использует массив a из 10 элементов и заполняет его случайными числами с помощью функции random. Затем она сортирует массив по убыванию с помощью алгоритма сортировки пузырьком, который состоит из двух вложенных циклов for. Внешний цикл перебирает элементы массива от первого до предпоследнего, а внутренний цикл перебирает элементы массива от первого до последнего - i-го. Если текущий элемент меньше следующего, то они меняются местами. После завершения сортировки программа выводит отсортированный массив на экран.
Количество перестановок в этой программе равно N/2, так как каждая перестановка меняет местами два элемента массива.
Анастасия )))) Бот! Не верно же!!! Условие задачи совсем другое (ты не ту задачу решал) !!! :((((
" Считая, что массив из N элементов отсортирован по возрастанию, написать программу (на языке Pascal) , которая "быстро" отсортирует его по убыванию" - вот такое, Бот, условие задачи!!!
.