Сортировка двумерного массива

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сортировка двумерного массива

Сообщение burik » 05.12.2009 (Сб) 22:11

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

Далее мой вариант задания:
3. Двухмерный массив. Сортировка массива. Вставка элемента в
отсортированный массив. Поиск элемента в отсортированном массиве.
Объединение двух отсортированных массивов. Пересечение двух
отсортированных массивов.


У меня возникло некоторое замешательство по части сортировки массива и вставки в него элемента.
Может есть какие-то общепринятые нормы сортировки двумерных массивов. Т.е. как правильнее его сортировать:
по строкам, по столбцам, последовательно слева направо сверху вниз, или спиралью, наконец :) ?

И как правильно вставить элемент в массив. Смущает вот что - элемент один, а массив-то двумерный и расширить его можно либо на строку, либо на столбец. Т.е. непонятно в какую сторону расширять и чему должны быть равны остальные элементы строки/столбца.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Сортировка двумерного массива

Сообщение Proxy » 05.12.2009 (Сб) 22:31

Мб в задании не имелось ввиду Сортировка двухмерного массива? Там точка стоит.
Самое очевидное на мой взгляд - сортировать, представляя каждый элемент двухмерного массива как элемент одномерного (т.е. индекс будет iy*w + ix, где ix, iy -- позиция по столбцу и строке двумернго, а w - горизонтальная размерность массива), т.к. иначе противоречия возникают.
Как вставить элемент в двухмерный массив без добавления элементов с неопределёнными значениями вообще не могу себе представить.
Что-то тут явно не так.
Follow the white rabbit.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Сортировка двумерного массива

Сообщение alibek » 05.12.2009 (Сб) 22:32

Что ты подразумеваешь под двухмерным массивом?
И если подразумеваешь матрицу, то что тогда подразумеваешь под вставкой элемента в массив?
Lasciate ogni speranza, voi ch'entrate.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Сортировка двумерного массива

Сообщение MIT » 05.12.2009 (Сб) 22:37

Двухмерный массив можно представить как таблицу. Значит сортировка идет по оговоренному столбцу, вставляется же строка.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Сортировка двумерного массива

Сообщение Proxy » 05.12.2009 (Сб) 22:45

Странно что нет оговорок. Я вот могу представить себе таблицу как массив столбцов, которые в свою очередь содержат ячейки, образуя тем самым строки. Разве есть общепринятое понмание таблицы? Если да, тоя его упустил.
Follow the white rabbit.

Александр Дмитриев
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 296
Зарегистрирован: 05.01.2005 (Ср) 3:39
Откуда: Санкт-Петербург    Куда: /dev/null

Re: Сортировка двумерного массива

Сообщение Александр Дмитриев » 06.12.2009 (Вс) 17:08

Скорее всего, имелось в виду сортировка одномерного массива и вставка элемента в одномерный массив. У индексов двумерного массива порядок лишь частичный, поэтому сортировка возможна лишь топологическая. Ну даже если его отсортировать каким-нибудь образом, то получится-то после сортировки одномерный массив. И соответственно, когда далее в задании говорится "отсортированный массив", имеется в виду одномерный массив. Но с другой стороны не понятно: какие тогда операции подразумеваются под фразой "двумерный массив"?

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: Сортировка двумерного массива

Сообщение burik » 06.12.2009 (Вс) 17:52

В задании необходимо сортировать именно двухмерный массив. И вставлять элемент именно в двухмерный массив. Лабораторная по структурам данных. В каждом варианте задание дается определенная структура данных и операции которые моя библиотека должна позволять производить с данной структурой.

С сортировкой более-менее определился - сделал различные варианты (по строкам, по столбцам, последовательно - как Proxy предлагал, еще спилью по часовой и против). Но вот с добавлением элемента пока не знаю как быть.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Александр Дмитриев
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 296
Зарегистрирован: 05.01.2005 (Ср) 3:39
Откуда: Санкт-Петербург    Куда: /dev/null

Re: Сортировка двумерного массива

Сообщение Александр Дмитриев » 06.12.2009 (Вс) 18:35

Тогда нужно выяснять у преподавателя, какую сортировку он имел в виду, так как отсортировать можно несколькими способами, и везде получится разный результат. Вставка элемента в отсортированный массив - это наверно построение нового массива, который имеет все элементы старого, а также новый элемент, и при этом является отсортированным. При этом опять возникает неопределённость: если нужно, например, в отсортированный массив 5x3 вставить новый элемент, то конечный массив должен иметь 15 + 1 = 16 элементов, но не понятно, будет ли он 16x1, 8x2, 4x4, 2x8 или 1x16. В общем, все эти вопросы нужно задавать преподавателю.

Xcode
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 131
Зарегистрирован: 31.10.2008 (Пт) 8:12
Откуда: Pavlodar

Re: Сортировка двумерного массива

Сообщение Xcode » 07.12.2009 (Пн) 12:02

Какая разница в каком виде массив? Помоему ты споткнулся на ровном месте.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: Сортировка двумерного массива

Сообщение burik » 07.12.2009 (Пн) 17:30

Xcode писал(а):Какая разница в каком виде массив? Помоему ты споткнулся на ровном месте.

Разница большая.

Вот, например, надо вставить элемент 13 в одномерный отсортированный массив: {2, 4, 5, 9, 17, 43}
Результат получается однозначно такой: {2, 4, 5, 9, 13, 17, 43}

Теперь возьмем двухмерный массив. Вставим элемент 13 в массив:
Математическая формула: \begin{pmatrix}2%264%265\\9%2617%2643\end{pmatrix}

Если по-твоему нет разницы, то напиши результирующий двухмерный массив.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Сортировка двумерного массива

Сообщение Andrey Fedorov » 09.12.2009 (Ср) 15:20

burik писал(а):Может есть какие-то общепринятые нормы сортировки двумерных массивов. Т.е. как правильнее его сортировать:
по строкам, по столбцам, последовательно слева направо сверху вниз, или спиралью, наконец :) ?


Спиралью в косую полосочку, конечно :lol:

Вообще, скорей всего, имелась в виду сортировка по одной из размерностей массива. Ну и под вставкой скорее подразумевалась вставка строки значений (в данном случае двух). Хотя, конечно, можно и уточнить у препода его понимание задачи...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Сортировка двумерного массива

Сообщение Денис » 09.12.2009 (Ср) 15:54

Есть мнение, что препод, о котором речь, не понял бы половины из того, о чем здесь говорилось :)
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Сортировка двумерного массива

Сообщение Хакер » 09.12.2009 (Ср) 16:01

Вообще-то надо было начать с того, что дать точное (математически строгое) определение понятию "сортировка". Если, например, под сортировкой подразумевается такая перестановка элементов массива, что после неё между любыми двумя смежными, если определён их порядок (то есть можно сказать, какой из них младший, а какой --- старший), элементами будет действовать некоторое бинарное отношение порядка, то двумерный массив отсортировать можно, но далеко не всегда.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Re: Сортировка двумерного массива

Сообщение burik » 09.12.2009 (Ср) 18:14

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


Я сюда и написал, чтобы понять что значит сортировка в данном конкретном случае. А почему не всегда можно отсортировать двумерный массив, используя, например, предложенное тобой определение сортировки?
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Сортировка двумерного массива

Сообщение Хакер » 09.12.2009 (Ср) 18:34

Математическая формула: \begin{pmatrix}1 & 9 \\ 2 & 7\end{pmatrix} не отсортируешь таким образом.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 38

    TopList