![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| timich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 4.12.2008 Репутация: нет Всего: нет |
Всем привет!
Подскажите пожалуйста как отсортировать массив. Есть Array.Sort(Мас7) , а как отсортировать в обратной последовательности?? |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 3 Всего: 59 |
У Array.Sort(...) есть еще пареметр, принимающий интерфейс System.Collections.IComparer и подобные ему... юзай, и будет тебе счастье!
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
System.Collections.IComparer - очень полезная штука, когда нужна какая-нибудь специфическая сортировка. В данном же случае дотаточно будет использовать функцию Array.Reverse после сортировки. Она меняет порядок на противоположный.
Это сообщение отредактировал(а) diadiavova - 4.3.2009, 11:23 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| timich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 4.12.2008 Репутация: нет Всего: нет |
С System.Collections.IComparer разобраться не смог, а реверс, то что нужно.
Спасибо всем! |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 3 Всего: 59 |
Если массив большой, то вызов Array.Reverse будет занимать дополнительное время. Я не смотрел код метода Array.Reverse, но предполагаю, что там цикл длинной в половину размера массива.
А сортировка с указанием System.Collections.IComparer, столько же, сколько и сортировка без его указания (по умолчанию). timich, если еще нужно, я выложу код здесь... -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| timich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 4.12.2008 Репутация: нет Всего: нет |
Выкладывай конечно! Я же учусь))
Если можно с пояснениями. |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 3 Всего: 59 |
Ну вот:
Думаю, что все более чем понятно! Если исключить все коментарии, то получится ровно три строчки кода. По моему, проще некуда Тебе нужно скопировать отсюда только функцию CompareValues. -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| timich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 4.12.2008 Репутация: нет Всего: нет |
Спасибо! Буду пробовать.
|
|||
|
||||
| diadiavova |
|
||||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Ну дык...за удобство надо платить.
Есть куда, можно и в две строчки
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||||
|
|||||||
| timich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 4.12.2008 Репутация: нет Всего: нет |
Мне показалось, что не так.......(-1) - если val1 < val2
а вот так.....................................(-1) - если val1 > val2 ошибаюсь? |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Вообще: эта функция должна возвращать отрицательное число, если первый аргумент имеет более высокий приоритет сортировки, 0 - если приоритеты равны, и положительное число - если второй аргумент имеет более высокий проритет(кажись так).
Более высокий приоритет означает, что в отсортированной коллекции элемент стоит раньше элементов с более низким приоритетом. Для чисел такая функция может быть реализована так
А вообще, почитай здесь. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| timich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 4.12.2008 Репутация: нет Всего: нет |
Большое спасибо!
|
|||
|
||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |