![]() |
|
Модераторы: Poseidon |
![]()
|
|
| SMedv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 7.5.2007 Репутация: нет Всего: нет |
Буду очень признателен , если поможите сделать прогу.
Дан двумерный массив n*m , нужно отсортировать его методот простых вставок по убыванию и расположить элементы по диагогалям , вот так : исходный массив: такой должен получиться : 7 8 4 9 7 4 1 3 9 8 5 2 2 5 6 6 3 1 Помогите пожалуйста ! |
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
Опять нужно просить кого-нить перевести на русский язык.
zkv, у тебя не плохо получается, может подсобишь? -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
Да вроде тут не сложно: растягиваем двумерный массив в вектор (неважно как), сортируем методом простых вставок по убыванию, затем элементы вектора распихиваем в исходную матрицу в порядке указанным автором (те параллельно побочной диагонали, начиная с элемента (0,0), в направлении снизу-вверх).
Вероятно растягивать в вектор необязательно, и сортировать можно прям на месте - над этим надо подумать. |
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
Вот это не понял. -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
эх, не сложилась карьера переводчика попробую себя в качестве программера. (немного не выдержал стиль и нет последовательности в действиях, не берите с меня пример, видящие человеки
|
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
zkv,
Хоть и надурил, но красиво. Как говорится, не важен способ, важен результат. -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| mefager |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.2.2007 Репутация: нет Всего: нет |
А в чём прикол? Можете объяснить? Вродибы всё работает. |
||||
|
|||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
||||
|
||||
| mefager |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.2.2007 Репутация: нет Всего: нет |
||||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
mefager, ну я не стал сортировать элементы в матрице, в вектор тоже не стал растягивать, а просто создал вектор указателей на элементы матрицы, притом нацелил их сразу в указанном задании порядке, потом просто отсортировал вектор по значениям элементов матрицы на которые указывают его (вектора) элементы.
Так лучше?
она находит нужный порядок следования элементов в матрице. Сложновата получилась - сам ее немного побаиваюсь Это сообщение отредактировал(а) zkv - 23.6.2007, 15:42 |
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
Да, именно это я и назвал "дуриловом". Ведь изначально нужно было отсортировать исходную матрицу, а потом уже расположить элементы матрицы по диагоналям. zkv же, создав массив указателей на элементы матрицы, изменил порядок действий, сначала расположив указатели по диагоналям матрицы, а потом отсортировал их по значениям. Таким образом, конечный результат был достигнут "неправильным", но очень красивым способом. Ну, а я, используя наработки zkv, решил немного переделать эту прогу, с тем, что бы она работала в указанном автором темы порядке. То есть, сначала идёт сортировка элементов матрицы, а уже потом расположение элементов матрицы по диагоналям. В сущности, мне пришлось переделать только ф-цию GetNextDiagPos. Теперь она вычисляет позицию элемента в диагоналях матрицы и возвращает ссылку на него, после чего по этим ссылкам элементам матрицы присваиваются "новые" значения матрицы, предварительно отсортированные в этой же матрице, а потом сохранённые в одномерном массиве. Вроде всё.
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
||||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
Нет, zkv. Решением мы будем считать всё, что сгодится автору темы, независимо от способа решения.
Побольше решений!!! Хороших и разных... -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| mefager |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 24.2.2007 Репутация: нет Всего: нет |
zkv, Dov. Вот теперь понятно, спасибо.
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |