Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Сортировка трехмерного массива


Автор: Maka6er 15.5.2008, 08:38
С одномерным массивом все понятно. А вот как обходить 3-х мерный массив и возможна ли быстрая сортировка(например), там ведь надо в рекурсивную функцию передавать часть массива? Как в таком случае поступают? 
Интересуют такие алгоритмы сортировки: включением, обменом, выбором и улучшенные методы сортировки. Какие из них применимы к 3-х мерным массивам? И подскажите пожалуйста где можно найти пример или выложите если у кого есть.  smile 

Автор: Akina 15.5.2008, 11:20
Отобрази трехмерный массив в одномерный 
Код

Function LinearNum(Dim1 As Long, Dim2 As Long, Dim3 As Long) As Long

Код

Function TripleNum(Linear As Long, DimNum As Integer) As Long

и сортирь любым методом, который тебе ближе духовно...

Цитата(Maka6er @  15.5.2008,  09:38 Найти цитируемый пост)
Какие из них применимы к 3-х мерным массивам?

Если под измерениями массива кроется какой-то смысл - то его сортировка вообще невозможна. Либо возможна по одному из измерений (тогда все стандартно) или по двум (при этом также используется описанный выше подход).

Автор: ksili 15.5.2008, 11:35
Цитата(Maka6er @  15.5.2008,  12:38 Найти цитируемый пост)
 там ведь надо в рекурсивную функцию передавать часть массива?

можно просто передавать указатель на массив

Если определитесь, как перейти от одного измерения к двум при сортировке, то сможете и 3-мерный сортировать. Мне вот даже непонятно как сортировать 2-мерный чисел. Допустим первую строку отсортируем по убыванию, как с этим связана вторая строка? Если и её просто отсортировать по убыванию, то это будет просто сортировка двух одномерных массивов, а не одного двухмерного.

Ну а если там массив не чисел, а каких-то объектов, то думайте... Допустим придумаем метрику, по к-рой их можно будет сравнить, но и метрика эта должна быть не простая, а двухмерная, т.к. должна определять место объекта в двухмерном пространстве (массиве). 

Расскажите задачу, для к-рой это всё понадобилось

Автор: esperant0 15.5.2008, 20:43
Чтобы что-то сортировать, надо задать метрику.


Определите метрику и все станет очевидно

Автор: Maka6er 5.6.2008, 09:55
Цитата(ksili @  15.5.2008,  11:35 Найти цитируемый пост)
Расскажите задачу, для к-рой это всё понадобилось
 - задача учебная. 

Цитата(Akina @  15.5.2008,  11:20 Найти цитируемый пост)
Отобрази трехмерный массив в одномерный
 - так и делал.

Всем спасибо за ответы, задание отпало smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)