Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
Алексей1153 |
25.1.2012, 20:14
Сообщение
#61
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
Цитата(panter_dsd @ 25.1.2012, 14:41) Link 1. rValue = ++n; - зачем в 2 строки делать? моё мнение - именно в 2 строки лучше. Нагляднее, плюс исключена ошибка. А то, что постфикс у простого типа - так это оптимизатор исправит сам, зато так красивее для глаза ) |
|
|
|
|
wiz29 |
26.1.2012, 16:07
Сообщение
#62
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12
|
Цитата(ViGOur @ 25.1.2012, 11:59) Link Как и обещал, код: Сложность приведенного алгоритма О(M*N), можно сделать быстрее за O(log2(M)*N), но он сложней в реализации. |
|
|
|
|
ViGOur |
26.1.2012, 20:08
Сообщение
#63
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Объясни как. Можно использовать только два массива!
|
|
|
|
|
wiz29 |
27.1.2012, 8:58
Сообщение
#64
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12
|
Цитата(ViGOur @ 26.1.2012, 21:08) Link Объясни как. Можно использовать только два массива! Множитель 'M' берется из линейности поиска в массиве значений, если данный массив поддерживать в сортированном виде, то поиск будет обходится в O(log2(M)), соответственно, получим более выгодную оценку для поиска. |
|
|
|
|
cross |
27.1.2012, 11:46
Сообщение
#65
|
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 24.6.2010 Пользователь №: 1833 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(wiz29 @ 26.1.2012, 17:07) Link Сложность приведенного алгоритма О(M*N), можно сделать быстрее за O(log2(M)*N), но он сложней в реализации. Согласен (о чем и писал ранее в соседней теме про эту задачу). Единственный линейный алгоритм, который мне видится, это если значение элементов лежит в интервале от 0 до Х (где Х не велико и нам хватает памяти) заводим массив из Х элементов, в котором индекс - это величина элемента в исходном множестве, а значение - число появлений этого элемента в исходном множестве. За один проход пересчитываем все элементы и берем нужное количество минимальных. |
|
|
|
![]() ![]() |
|
Текстовая версия | Сейчас: 27.12.2025, 11:10 |