Сортировка одномерного массива указанным . Входные параметры: количество элементов в массиве, элементы массива. Вывод исходного и отсортированного массивов на консоль в удобном для пользователя, «читабельном» виде. Сортировка вставками. Дана последовательность чисел а1, а2, ..., аn. Требуется переставить числа в порядке возрастания. Делается это следующим образом. Пусть а1, а2, ..., аi – упорядоченная последовательность, т.е. а1 ≤ a2 ≤ ... ≤ аi. Берется следующее число ai+1 и вставляется в последовательность так, чтобы новая последовательность была тоже возрастающей. Процесс производится до тех пор, пока все элементы от i+1 до n не будут перебраны. Примечание. Место помещения очередного элемента в отсортированную часть рекомендуется находить с двоичного поиска. Двоичный поиск оформить в виде отдельной функции. Написать на C(Си)
var a:array[1..n,1..m] of integer;
i,j,max,min:integer;
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(201)-100;
write(a[i,j]:4);
end;
writeln;
end;
max:=a[1,1];
min:=a[1,1];
for i:=1 to n do
for j:=1 to m do
begin
if a[i,j]>max then max:=a[i,j];
if a[i,j]<min then min:=a[i,j];
end;
writeln('max = ',max,' min = ',min);
writeln('Среднее арифметическое = ',(max+min)/2);
end.
Пример:
Исходный массив:
5 -9 -12 -2 88
-9 -93 -60 8 30
72 50 -56 -39 -29
13 -89 -28 -22 29
max = 88 min = -93
Среднее арифметическое = -2.5
n, sum, max: integer;
begin
sum:=0;
write('Введите натуральное число n: ');
readln(n);
a := new integer[n];
write('Введите действительные числа: ');
for var i:=0 to a.Length-1 do
read(a[i] );
write('Сумма равна: ');
for var i:=0 to a.Length-1 do
sum:=sum+a[i];
writeln(sum);
write('Максимальный элемент равен: ');
max := a[0];
for var i:=0 to a.Length-1 do
if a[i]>max then
begin
max := a[i];
end;
writeln(max);
write('S = (А1+ А2+ …,+ Аn) + max (А1, А2, …, Аn) = ');
sum:=sum+max;
write(sum);
end.