|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.12.2011, 00:35 | #1 |
Форумчанин
Регистрация: 06.07.2010
Сообщений: 105
|
Сортировка массива Паскаль
задана матрица mXn. Упорядочить по возрастанию , обязательно методом выбора, елементы матрицы, обходя её змейкой:
вот рисунок: У меня есть некоторые нароботки разными кусками, я не знаю как их связть и стоит ли вообще их связывать: Мои нароботки: Вот как задавать матрицу данной змейкой, везде матрица квадратна, ну логично заменим на m в i и введем изначально его, и будет то что нужно, но не суть: Код:
Код:
Но если использовать сортировку по столбикам, то она у меня сортирует просто отдельно каждый столб , при этом четные столбцы не правильно, не снизу вверх, а сверху вниз как и четные. А мне нужно как сказано в условии. Очень жду вашей помощи, спецы, ибо завтра сдавать.
Carpe Diem
Последний раз редактировалось Heming; 08.12.2011 в 00:38. |
08.12.2011, 03:32 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
хоть змейкой, хоть звёздочкой, хоть вставкой, хоть заменой, всё едино )
http://ideone.com/ttiKn (всегда путал строки и столбцы в матрицах, если шо, m и n местами поменяйте )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 08.12.2011 в 03:48. Причина: слегка оптимизировал ) |
08.12.2011, 23:48 | #3 |
Форумчанин
Регистрация: 06.07.2010
Сообщений: 105
|
что значат строчки
index2a := @a[row, col];(именно собака) if (0 = (col and 1)) then... ( что значит col и еденица, то переменная то целое число) pInt = ^Integer; что такое ^ , вы далее ^ часто используете, могли бы вы немного комментов добавить, я то-то не совсем вьезжаю Объясните пжл ваш алгоритм обхода
Carpe Diem
Последний раз редактировалось Heming; 08.12.2011 в 23:57. |
09.12.2011, 00:36 | #4 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> именно собака
взятие адреса, функция возвращает адрес ячейки массива. Просто мне было удобней для пересчёта линейного индекса "змеи" в элемент массива возвращать его адрес, далее ^ означает операцию получение значения по указателю. > что значит col и еденица битовые операции, берётся младший бит от col, и если он равен 0, значит col чётное. Можно поменять на Even(col), будет то же самое. > немного комментов добавить добавил немного > алгоритм обхода весь алгоритм построен, фактически, на функции index2a(). Т.к. нам нужно рассматривать массив не как двухмерную матрицу, а как "змею", то проще работать с ним как с цепочкой значений, пронумерованных от 1 до m*n. Для этого мы не обращаемся к массиву напрямую, а используем index2a(), которая пересчитывает индекс "змеи" в значения столбец/строка, и возвращает указатель на нужный элемент массива. Т.е. мы просто сортируем "змею", а функция index2a() преобразует это в матрицу.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
09.12.2011, 00:42 | #5 |
Форумчанин
Регистрация: 06.07.2010
Сообщений: 105
|
Боже мой, цены вам нет!!! Вы просто для меня супергерой, но я постараюсь не пользоваться вашей суперсилой сильно часто). Большоее вам спасибо, сейчас сяду вдумаюсь в код на все 100% и попытаюсь воспроизвести его самостоятельно.
Carpe Diem
|
09.12.2011, 00:48 | #6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
ерунда )
Если вы ещё не проходили указателей (или скажут, что их нельзя использовать), можно преобразовать функцию index2a() так: Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
09.12.2011, 01:03 | #7 |
Форумчанин
Регистрация: 06.07.2010
Сообщений: 105
|
В условии задачи это не оговорено, на счет указателей, а значит я спокойно могу их юзать, да и мне же полезней будет разобраться с чем-то новым(что такое физический и логические адресс я понимаю, так что вроде должен, разобраться, или это не из той оперы?), а как разберусь при защите смогу аргументировать свой выбор, еще раз спасибо большое.
Carpe Diem
Последний раз редактировалось Heming; 09.12.2011 в 01:10. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка массива(Паскаль) | U4-nik | Помощь студентам | 16 | 16.05.2011 20:45 |
сортировка массива [Паскаль] | Pein95 | Помощь студентам | 1 | 07.12.2010 21:41 |
Паскаль. Сортировка массива | Asira | Помощь студентам | 2 | 04.03.2010 16:54 |
паскаль. Сортировка массива. | suv121 | Помощь студентам | 3 | 08.12.2009 17:41 |
Паскаль, сортировка массива! | vlad1991 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 13.01.2009 22:57 |