IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Сортировка двумерного массива методом вставки.
Ditaly
сообщение 25.11.2010 21:22
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Всем доброго времени суток.
Нужна ваша помощь , самому написать не вышло ( только для одномерного массива ).

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 25.11.2010 21:47
Сообщение #2


Гость






А какая разница?

Как именно нужно отсортировать матрицу? "Насквозь"? Так передавай ее как бестиповый Var-параметр, и сортируй как одномерный. Если нужно что-то другое - так объясни, как именно нужно отсортировать матрицу.
 К началу страницы 
+ Ответить 
Ditaly
сообщение 25.11.2010 21:57
Сообщение #3





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Цитата
А какая разница?

Как именно нужно отсортировать матрицу? "Насквозь"? Так передавай ее как бестиповый Var-параметр, и сортируй как одномерный. Если нужно что-то другое - так объясни, как именно нужно отсортировать матрицу.


Спасибо за быстрый ответ.

Отсортировать нужно как двумерный массив, без "превращения" его в одномерный.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 25.11.2010 23:24
Сообщение #4


Гость






Опять за свое... КАК отсортировать-то надо? Построчно? По столбцам? По какому критерию? По убыванию количества цифр в элементах? По сумме цифр? Хочешь, я тебе еще 20 критериев приведу?
 К началу страницы 
+ Ответить 
Ditaly
сообщение 26.11.2010 9:38
Сообщение #5





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Просто отсортировать по возрастанию весь массив, к примеру:

До сортировки :
89 898 12
0 13 14
23 21 98


После сортировки:
0 12 13
14 21 23
89 98 898

Сообщение отредактировано: Ditaly - 26.11.2010 9:41
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
TarasBer
сообщение 26.11.2010 10:56
Сообщение #6


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> После сортировки:
0 12 13
14 21 23
89 98 898

Так это и есть сортировка, как одномерный массив!

А ты что сказал? ("Отсортировать нужно как двумерный массив, без "превращения" его в одномерный.")


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ditaly
сообщение 26.11.2010 11:08
Сообщение #7





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Цитата(TarasBer @ 26.11.2010 11:56) *

> После сортировки:
0 12 13
14 21 23
89 98 898

Так это и есть сортировка, как одномерный массив!

А ты что сказал? ("Отсортировать нужно как двумерный массив, без "превращения" его в одномерный.")


Хм... ошибся, если можно скиньте исходник, сортировки, как одномерный массив.

P.S.: Все таки правильная постановка задачи, это половина решенной задачи.

Сообщение отредактировано: Ditaly - 26.11.2010 11:08
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 26.11.2010 19:30
Сообщение #8


Гость






Сортировка простой вставкой (немного измененная версия вот этого кода из FAQ: Методы сортировок)


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);
{ ... }



Хоть двумерную, хоть трехмерную, какую хочешь, такую и передавай, процедура сортировки работает с "вытянутым в цепочку", строка за строкой, представлением.
 К началу страницы 
+ Ответить 
Ditaly
сообщение 26.11.2010 19:36
Сообщение #9





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Спасибо за помощь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:27
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"