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

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

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

 
 Ответить  Открыть новую тему 
> Сквозная сортировка, что такое сквозная сортировка
сообщение
Сообщение #1





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

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


Есть ли какой-то алгоритм так называемой сквозной сортировки 2-мерного массива.
например:
2 4 8
5 2 3
3 7 1
в рез-те должно отсортировать так:
1 3 5
2 3 7
2 4 8
И разложение данного массива в одномерный, а потом сортировка его и опять запись в 2-мерный - не катит.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Пионер
**

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

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


Серж Может нужно отсортировать каждую строку по возрастанию .

Сообщение отредактировано: Merlin -


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Насколько видно из приведенного примера - матрица сортируется "по столбцам"...

Если "не катит" разложение массива в одномерный, и потом обратная запись в матрицу, можно предложить приведение типа матрицы к массиву (фактически никакого разложения не происходит, ты просто заставишь компилятор "под другим углом" посмотреть на матрицу), или придется шаманить с индексами - готовь большой бубен...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





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

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


Цитата(volvo @ 18.04.2006 20:06) *

Если "не катит" разложение массива в одномерный, и потом обратная запись в матрицу, можно предложить приведение типа матрицы к массиву (фактически никакого разложения не происходит, ты просто заставишь компилятор "под другим углом" посмотреть на матрицу), или придется шаманить с индексами - готовь большой бубен...

A что понимается под приведением типа матрицы к массиву? И как это происходит?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Приведение матрицы к массиву - ты говоришь компилятору, что "на те данные, которые я раньше описал, как матрицу, в этом случае нужно смотреть, как на одномерный массив"... То есть, ФАКТИЧЕСКИ, никаких преобразований матрицы в одномерный массив не производится, ФИЗИЧЕСКИ ты работаешь с той же матрицей, так что, по-моему, приведенное тобой условие нигде не нарушается.

Как сделать? Ну, например, вот так:
const
size_x = 3;
size_y = 3;

type
column = array[1 .. size_y] of integer;
matrix = array[1 .. size_x] of column;

pvector = ^vector;
vector = array[1 .. maxInt div sizeof(integer)] of integer;

const
{ ВНИМАНИЕ: Заполнение матрицы - не построкам, а по столбцам !!! }
a: matrix = (
(2, 5, 3), { 1 столбец }
(4, 2, 7), { 2 столбец }
(8, 3, 1) { 3 столбец }
);

procedure print(const mx: matrix);
var i, j: integer;
begin
for i := 1 to size_x do begin
for j := 1 to size_y do
write(mx[j][i]:4);
writeln;
end;
end;

procedure bubble(var ar: vector; n: integer);
var i, j, T: Integer;
begin
for i := 1 to n do
for j := n downto i + 1 do
if ar[Pred(j)] > ar[j] then begin
T := ar[Pred(j)]; ar[Pred(j)] := ar[j]; ar[j] := T
end
end;

begin
writeln('before:');
print(a);

bubble(pvector(@a)^, size_x * size_y);

writeln('after:');
print(a);
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6





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

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


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

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

 





- Текстовая версия 23.04.2024 19:27
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name