Здравствуйте, Codealot, Вы писали:
N>>Давай трезво подумаем. N>>Есть вариант сначала найти максимум — O(N), затем поискать его индекс — снова O(N). Итого O(N). N>>Есть вариант явным циклом, менее читаемый, и всё равно O(N).
C>Твой ответ вгоняет меня в депрессию еще сильнее. В теории почти то же самое, а на практике будет медленнее, возможно, на порядки.
Я уже сказал, что ToList() просто не заметил. Рассмотри с поправкой на это.
А откуда вдруг могут взяться _порядки_?
N>>PS: А зачем ты вообще пошёл искать ответ на такой вопрос? ) C>Проверить — нет ли решения, которое встроено в библиотеку.
Здравствуйте, Teolog, Вы писали:
T>Любой код вызываемый неприрывно не должен выделять память ни в каком виде, особенно в LOH-куче и все тут.
В языках типа C# как в контексте тут это возможно только при очень специальном программировании, но, главное, обычно это просто не нужно.
Ну разве что у вас hard realtime и нужно обеспечить стабильность в пределах микросекунд, но тогда непонятно, при чём тут C#.
T>Любители "чистого и понятного" кода пусть идут в университет и радуют всех простотой и легкостью. T>Проще грубо запретить "наивный" стиль кодописания, чем ждать пока оно стрельнет на очередном добавлении функционала.
А потом окажется, что всё это было нафиг не нужно за пределами 1% кода hot path.
T>Кто каждый раз все дерево вызовов проверять будет, на предмет не оставил ли джуниор поганку? Да никто.
Именно что при постановке задачи оптимизации конкретного вида нагрузки — будут, и активно.
Здравствуйте, Osaka, Вы писали:
O>Если написал алгоритм длиннее пары строк, и абсолютно всё в нём предусмотрел, то на реальных данных он всё равно может неожиданно сглючить.
Если нет уверенности в своей способности написать поиск максимума и не облажаться, нужно искать другую работу.
O>Если программист не "немного шарит", а "работает в команде" — процедура исправления даже 1 буквы может затянуться на несколько дней и потребовать участия нескольких человек. O>Со временем возникает привычка по возможности не вы(думывать) и делать простейшим способом.
Здравствуйте, Codealot, Вы писали:
Pzz>>Да еще к тому же сложность O(n), что вообще шикарно. Могла бы быть O(n^2), например.
C>Тэорэтики. C>На практике, этот код может быть медленнее на порядки.
На практике лично я имею тенденцию переоптимизировать без особой нужды, а потом корю себя за это.
Здравствуйте, Codealot, Вы писали:
Pzz>>На практике лично я имею тенденцию переоптимизировать без особой нужды, а потом корю себя за это.
C>Похоже, что теперь ты решил переоптимизировать упрощение кода.
В каком смысле, решил? Это не мой код и не код проекта, которому я имею хоть какое-то отношение. Мы обсуждаем сейчас сообщение из интернета, а не делаем code review. Никакие решения я тут не принимаю, просто делюсь мнением.
Если ты думаешь, что это — худший образец кода из того, что я видел, ты ошибаешься. Этот хоть особых проблем для окружающих не создает.
Здравствуйте, Pzz, Вы писали:
Pzz>Никакие решения я тут не принимаю, просто делюсь мнением.
Про твое мнение я и написал.
Pzz>Если ты думаешь, что это — худший образец кода из того, что я видел, ты ошибаешься. Этот хоть особых проблем для окружающих не создает.
Видел и похуже, но вот с таким всеобщим одобрением — вроде нет.
Здравствуйте, Osaka, Вы писали:
O>Ну улучшишь её в 100 раз за цену нескольких синьёро-дней работы, и кто от этого выиграет?
Гы. При правильной организации процесса производства вся цепочка начальства отчитается о проделанной работе и все от этого выиграют. Особенно, если это займет несколько недель и вовлечет нескольких исполнителей сеньёрского уровня.
Здравствуйте, Pzz, Вы писали:
Pzz>Гы. При правильной организации процесса производства вся цепочка начальства отчитается о проделанной работе и все от этого выиграют. Особенно, если это займет несколько недель и вовлечет нескольких исполнителей сеньёрского уровня.
N>Ну разве что у вас hard realtime и нужно обеспечить стабильность в пределах микросекунд, но тогда непонятно, при чём тут C#.
Микросекунды — это к любителям bare-metal и hard-realtime
Миллисекунды-натив код и редкие выплески с лагами от переключения потоков.
Тут речь идет о величинах 5мс и выше — вплоть до секунд в пиковых случаях. Длительность нелинейно растет с объемами и иерархичностью данных.
Пропустил как-то боксинг из-за сравнения Enum в Generic методе — GC занял 97% процессорного времени.
LVV>>Но я б не задавал вопроса, а просто тупо попытался бы написать сам. C>Именно, что тупо. Сначала проверь, нет ли встроенного в библиотеку решения. Не велосипедь.
Ну дык я это и имел ввиду.
Что ж я буду писать свой код, когда во фреймворке уже все есть...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Codealot, Вы писали:
C>Здравствуйте, vsb, Вы писали:
vsb>>Ну давай проверим, что будет. Задал ему этот вопрос, просто копипастом с SO. Вот его код:
C>Мда. Тот случай когда ИИ победил, потому что люди окончательно отупели.