Обсуждали Big O
Я: в ролике оцениваю всегда память, учитывая результирующий массив
Оппонент: говорит, что оценивать результат в Big O не стоит
FIGHT!
Моя позиция такая: смысл Big O оценки — понять объем затрачиваемых ресурсов на исполнение какого-то куска кода
Простой пример
Вот 2 идентичные функции, но! Одна возвращает результирующий массив, а вторая просто печатает...
Если не оценивать результат, то память везде будет O(1), и различить такие функции нельзя — нужно лезть внутрь и разбираться
А если оценка роста памяти не линейная, а какая-нибудь O(k*log(n)+m)...
Это ж свихнуться можно будет, прежде чем поймешь, сколько реально занимает памяти результат
В общем!
Я считаю, что оценивать Big O нужно всегда, учитывая все накладные ресурсы, чтобы не лазить в функцию каждый раз и понимать скорость роста времени и памяти
Обсуждение я не нашел - видимо оппонент удалил сообщение, так что его позицию сказать не могу, но я готов продолжить в комментах под постом 😏
---
P.S. да, я знаю, что память бывает разная: stack, heap... И Big O оценивает все это в совокупности в самом простом случае (хотя лично я люблю разделять)
P.P.S. да, я знаю, что интервьюеры иногда просят оценить память без ответа — просто смотрят, не зазубрил ли ты ответ
Уверен, ты и сам знаешь что нужно делать с 🌭
Как то двусмысленно получилось, но так и задумывал. Везде маркетинг)
