Всем доброго времени суток.
Нужна ваша помощь , самому написать не вышло ( только для одномерного массива ).
А какая разница?
Как именно нужно отсортировать матрицу? "Насквозь"? Так передавай ее как бестиповый Var-параметр, и сортируй как одномерный. Если нужно что-то другое - так объясни, как именно нужно отсортировать матрицу.
Опять за свое... КАК отсортировать-то надо? Построчно? По столбцам? По какому критерию? По убыванию количества цифр в элементах? По сумме цифр? Хочешь, я тебе еще 20 критериев приведу?
Просто отсортировать по возрастанию весь массив, к примеру:
До сортировки :
89 898 12
0 13 14
23 21 98
После сортировки:
0 12 13
14 21 23
89 98 898
> После сортировки:
0 12 13
14 21 23
89 98 898
Так это и есть сортировка, как одномерный массив!
А ты что сказал? ("Отсортировать нужно как двумерный массив, без "превращения" его в одномерный.")
Сортировка простой вставкой (немного измененная версия вот этого кода из FAQ: http://forum.pascal.net.ru/index.php?s=&showtopic=3065&view=findpost&p=29784)
type
T = integer;
procedure Insert(var V; size: Integer);
var
Arr: array[1 .. MaxInt div SizeOf(T)] of T absolute V;
i, j: Integer;
Element: T;
begin
for i := 1 to size do
begin
Element := Arr[i];
j := Pred(i);
while (j > 0) and (Element < Arr[j]) do
begin
Arr[Succ(j)] := Arr[j]; Dec(j);
end;
Arr[Succ(j)] := Element;
end;
end;
сonst
m = 3; n = 3;
b: array[1 .. m, 1 .. n] of integer = (
(89, 898, 12),
( 0, 13, 14),
(23, 21, 98)
);
{ ... }
Insert(b, m * n);
{ ... }
Спасибо за помощь!
Comprar Levitra En Zaragoza