Pascal Напишите программу, которая сортирует первую половину массива по возрастанию, а вторую – по убыванию. При этом элементы из первой половины не должны перемещаться во вторую и наоборот. Входные данные Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 и N – чётное число. Выходные данные Программа должна вывести в одной строке элементы все массива, отсортированного нужным образом, разделив их пробелами. Примеры входные данные 6 3 2 1 4 5 6 выходные данные 1 2 3 6 5 4 Нельзя использовать тип Boolean
program SortHalfArray; var N, i, j, temp: Integer; arr: array[1..10000] of Integer; begin // Ввод размера массива readln(N); // Ввод элементов массива for i := 1 to N do read(arr[i]); // Сортировка первой половины массива по возрастанию for i := 1 to N div 2 - 1 do begin for j := 1 to N div 2 - 1 do begin if arr[j] > arr[j+1] then begin temp := arr[j]; arr[j] := arr[j+1]; arr[j+1] := temp; end; end; end; // Сортировка второй половины массива по убыванию for i := N div 2 to N - 1 do begin for j := N div 2 to N - 1 do begin if arr[j] < arr[j+1] then begin temp := arr[j]; arr[j] := arr[j+1]; arr[j+1] := temp; end; end; end; // Вывод отсортированного массива for i := 1 to N do write(arr[i], ' '); end.
Программа сначала сортирует первую половину массива по возрастанию, а затем вторую половину массива по убыванию. Результат выводится на экран через пробел.
Пример решения на языке Pascal:
program SortHalfArray;var
N, i, j, temp: Integer;
arr: array[1..10000] of Integer;
begin
// Ввод размера массива
readln(N);
// Ввод элементов массива
for i := 1 to N do
read(arr[i]);
// Сортировка первой половины массива по возрастанию
for i := 1 to N div 2 - 1 do
begin
for j := 1 to N div 2 - 1 do
begin
if arr[j] > arr[j+1] then
begin
temp := arr[j];
arr[j] := arr[j+1];
arr[j+1] := temp;
end;
end;
end;
// Сортировка второй половины массива по убыванию
for i := N div 2 to N - 1 do
begin
for j := N div 2 to N - 1 do
begin
if arr[j] < arr[j+1] then
begin
temp := arr[j];
arr[j] := arr[j+1];
arr[j+1] := temp;
end;
end;
end;
// Вывод отсортированного массива
for i := 1 to N do
write(arr[i], ' ');
end.
Программа сначала сортирует первую половину массива по возрастанию, а затем вторую половину массива по убыванию. Результат выводится на экран через пробел.