Ребят, сори, в видео сделал ошибку. unique.contains(num) дает O(1) в лучшем случае и O(logn) в случае частых коллизий, поэтому в целом оба варианта через HashSet дают O(n) в лучшем и O(n*logn) в среднем случае, но все равно через битовые операции будет быстрее, так как тут гарантировано всегда O(n), плюс не нужно выделять память под лишнюю коллекцию
Про память актуально, это точно. В тех же стримах важно перед терминальной операцией операцией ставить аккумуляторную промежуточную операцию, а вначале блочную (или вертикальную, забыл как называется). В плане кода разницы никакой, зато по производительности может быть космос. Смысл сортировать весь "Лист" (условно, пусть в виде стрима), если возможно мы потом отфильтруем, может быть половину или вообще весь "стрим". п.с. написал по индийски, но смысл думаю понятен. Скорость решает
А второй вариант не О(log n) считается? Вроде даже хэш мапа ни разу не гарантирует О(1), так как в случае совпадений по хэшам, начинается движение по ноде, а это уже не О(1)
кстати, хороший вопрос, в видео сделал ошибку. unique.contains(num) дает O(1), поэтому в целом оба варианта через HashSet дают O(n), но все равно через битовые операции будет быстрее, так как не нужно выделять память под лишнюю коллекцию. O(log n) - это если бы было дерево, тут хэш таблица
Уфф, вот это я понимаю - нормальный пример на побитовые операции! А не то, что у некоторых в фиолетовой рубашке - непонятно, что, куда, зачем... Что можно посмотреть или почитать не заумного по этой теме? Может, кто знает, порекомендуйте. Александр, спасибо за урок!
Ребят, сори, в видео сделал ошибку. unique.contains(num) дает O(1) в лучшем случае и O(logn) в случае частых коллизий, поэтому в целом оба варианта через HashSet дают O(n) в лучшем и O(n*logn) в среднем случае, но все равно через битовые операции будет быстрее, так как тут гарантировано всегда O(n), плюс не нужно выделять память под лишнюю коллекцию
Про память актуально, это точно.
В тех же стримах важно перед терминальной операцией операцией ставить аккумуляторную промежуточную операцию, а вначале блочную (или вертикальную, забыл как называется).
В плане кода разницы никакой, зато по производительности может быть космос.
Смысл сортировать весь "Лист" (условно, пусть в виде стрима), если возможно мы потом отфильтруем, может быть половину или вообще весь "стрим".
п.с. написал по индийски, но смысл думаю понятен. Скорость решает
Судя из названия структуры, HashSet.contains работает за O(1), так как проверяет хэш
большое спасибо за видео. Многие вещи стали более понятными
Саня, ты большой молодец! Спасибо тебе за работу!
Розыгрыш уже был?
Еще нет, сегодня-завтра сделаю
поздравляю с победой! отпишитесь в группе в телеграмм
Спасибо за Урок)
А второй вариант не О(log n) считается? Вроде даже хэш мапа ни разу не гарантирует О(1), так как в случае совпадений по хэшам, начинается движение по ноде, а это уже не О(1)
кстати, хороший вопрос, в видео сделал ошибку. unique.contains(num) дает O(1), поэтому в целом оба варианта через HashSet дают O(n), но все равно через битовые операции будет быстрее, так как не нужно выделять память под лишнюю коллекцию. O(log n) - это если бы было дерево, тут хэш таблица
O(n*logn) может быть, если в HashSet будет много коллизий
@@coducation Спасибо, завтра обмозгую. Уже засыпаю, четвертый час))) Я тоже что-то мог напутать)))
Как всегда топ 🙌🙌🙌Спасибо за обзор
Большое спасибо за урок! Очень полезное видео!
Спасибо большое за подробный гайд.
Побитовые операции я часто применяю для определения четности и нечетности, помогает даже при отрицательных числах.
хороший пример
Привет. Суть понятна про битовые операции но посмотреть бы конкретно в программе в рабочем коде - как это все прописываться.
при расширении размера ArrayList, вроде, используется сдвиг влево
почему так мало подписчиков, хорошо объясняете
нет рекламы )
хочу победить
Уфф, вот это я понимаю - нормальный пример на побитовые операции! А не то, что у некоторых в фиолетовой рубашке - непонятно, что, куда, зачем... Что можно посмотреть или почитать не заумного по этой теме? Может, кто знает, порекомендуйте. Александр, спасибо за урок!
расскажите про свой путь в it
полезное видео, надеюсь победить в конкурсе)
а зачем они вообще нужны? так и не понял:(
Я даже не заморачивался над ними а они так сокращают код. Интересно однако 👍
Klass
😁наконец новое видео, интересные видео уроки