Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Сортировка двумерного массива методом вставки без перевода в одномерный

Автор: Nodl 19.11.2008 1:42

собственно, сабж. Юзал поиск, не нашел. Самому написать не вышло. Это вообще возможно?

Автор: volvo 19.11.2008 2:27

Цитата
Это вообще возможно?
Возможно, и очень несложно, кстати... Если в одномерном массиве у тебя есть один индекс, то в двумерном - два, причем тебе известны число строк и число столбцов твоей матрицы, то есть, из одномерного (номер элемента от начала матрицы) ты можешь очень просто получить два индекса, определяющие номер строки/столбца, в которых элемент находится:
A[i div num_cols, i mod num_cols], где i - номер элемента от начала матрицы, а num_cols - число столбцов матрицы (это в случае, если матрица индексируется с 0, а не с 1-цы, поскольку Паскаль допускает любой начальный индекс - выбирай именно 0)...

Общее число сортируемых элементов тебе тоже известно: достаточно перемножить число строк на число столбцов... Вот и все, что тебе надо... А теперь в процедуре, которая правильно сортирует одномерный массив, просто меняй обращение к элементу массива на обращение к элементу матрицы. Пробуй, что не получится - говори...

Автор: Nodl 19.11.2008 4:12

Спасибо за быстрый, развернутый ответ. Все написал, работает cool.gif