Йипать капать, дядь, не иначе как ты апгрейднутаяя версия реинкарнации Zorax'a ☺ Не обессудь, я не хотел тебя оскорбить, т.к. многие люди не любят когда их сравнивают с кем либо, пусть даже и в положительном контексте. Просто очень похожая манера подачи и изложения материала, но гораздо более продвинутого и с практическим уклоном. Очень круто объясняешь, четко, последовательно, структурированно да еще и доступным языком. Всего хорошего тебе, спасибо, что делишься своими знаниями.
выделил время, послушал курс. чо сказать - агонь! то, что курс длится всего час, не означает, что его усвоить можно тоже за час. нужно разделить на логические куски, послушать, повторить код, потом реализовать код самостоятельно. после этого переходить к следующей части. огромное спасибо за труд.
ахах, хитрый) в сортировке выбором смотрю на эту array[i] во вложенном цикле по j, потом ты запускаешь в ноде - и бах! всё работает :D я сижу такой в непонятках вообще. а ты там в тихую вырезал момент, где исправляешь i на j :D лучше проговаривай явно такие моменты, чтобы люди не путались. а за видео спасибо. чувак, у тебя неоправданно мало подписчиков. но, думаю, долго это не продлится. продолжай!
полчаса сидел и недоумевал, почему это работает и как такое возможно, думал я совсем тупой и не понимаю почему arr[i], вместо arr[j]. Зашел в комменты чисто, чтобы проверить, что кто-то возмутился тоже))
@@UlbiTV Все мы люди. Любой может сделать опечатку. А вот втихую исправлять такие опечатки, мягко говоря, нехорошо. Но ты и сам, думаю, это понимаешь) За видос лайк улетел - контент годный 👍🏻
Реально! Я себе чуть когнитивный диссонанс не заработал, хорошо в комментарии посмотрел что не один я заметил... А как же не заметить, сам же в голове компилируешь каждую задачу и как тут такое пропустить...
кайф, 2 дня пытался понять почему не работает. Зачем исправлять и потом делать склейку уже с правильным вариантом? Начинающие потом сидят и ломают голову.
Тоже обратил внимание на эту магию вне Хогвартса. Несколько минут пытался разобраться, почему оно вообще работает, как обычно, ответ нашелся в комментах))
Очень интересно, про опечатку в selection sort уже написали, я бы хотел добавить замечание по bubble sort подходу, так как там сложность такая же как и при selection sort методе. При каждом проходе первого цикла нет смысла проходить второй цикл полностью, так как верхний элемент уже будет отсортированным. Если применить: j < array.length - i то сортировка проходит за 1378 итераций, а не 2704. Да, по сути как вы и писали это все равно O(n*n), но все же на практике разница в два раза.
Перед тем как написать это замечание решил глянуть, не мог же я один это заметить... :) Еще момент , так же нет смысла крутить цикл до конца, если нет ни одного перемещения "пузырька". Для частично отсортированных массивов это имеет важное значение. Пузырьковая все же почти всегда быстрее чем обычным перебором, хоть и не значительно
Видео конечно Огонь, Спасибо! 1) Считаю что на 13:31 допущена ошибка в строчке 8 , которую хорошо показывает дебаг. строчка 8 должна быть вот такая чтобы код чтото сортировал if (array[i] > array[j]) {.... в вашем примере здесь происходит сравнение одной и той же ячейки массива в каждой интерации , и результат условия всегда False. 2) Считаю что на 16:19 допущена ошибка на строчке 6 , , которую хорошо показывает дебаг. во вложенном цикле должно быть j=i а не j=0 поправьте меня если я ошибся
Тоже ее сразу заметил и чуть не офигел, когда он получил отсортированный массив.. Начал переписывать код, но потом все же заметил как он незаметно в вырезанном моменте видео меняет i на j.
я не мог понять .... полностью повторил код и нет сортировки(пока вдуплил аж вспотел. "Ну на видео сортирует ,ошибок нет))".Мозг говорит мы сравниваем две одинаковые переменные .....(Я) как так? на видео все ок ...Отстань))
По поводу второго пункта: должно быть j < array.length - i, т.к. самый большой элемент мы переносим в конец массива, и там сортировать уже смысла нет. И тогда получается намного эффективнее, хоть и все еще очень медленно. Сортировка выбором эффективнее, т.к. не меняет элементы местами при каждом случае.
Спасибо, так хорошо, просто, быстро и лаконично мне ещё не объясняли! Это очень полезное видео, лучшее, что видел. Огромная благодарность автору за то, что делитесь своими знаниями! Thumb up!
Единственный канал, ролики которого я качаю и храню локально на случай, если отрубят ютуб) Тимур, искренне благодарю тебя за твои труды. Ты делаешь невероятно полезный контент, о чем свидетельствует многотысячное комьюнити вокруг тебя. Крепкого здоровья тебе. Живи вечно 🤝💪
Если отрубят ютуб это будет означать что ничего из подобной информации тебе уже не пригодиться, лучше тогда уж сохраняй, как развести огонь имея две палки ))))
Спасибо, очень понравилось, что в одном видео все основные структуры и алгоритмы представлены + на JS. Отлично для обзора и повторения. Но как новичку сами алгоритмы (код) сложнова-то воспринимаются. Хорошо бы еще каждый разобрать подробнее на примере более простым языком, возможно начать с более простого примера и подвести к решению.
Спасибо огромное!!! Начал изучать алгоритмы и не знаю с чего подступиться, решил посмотреть предварительно данную тему здесь, и как всегда, не ошибся! Всё строго по делу, без воды, чётко поставленная речь, отличная подача материала. Начал изучать книгу по алгоритмам, отталкиваясь от данного урока лучше усвоение проходит)
Привет. Думал будет просто про алгоритмы как у всех, как первая половина видео, а тут столько всего. Великая работа. Как минимум ты не просто озвучил книгу, но в хорошей форме донес и объяснил нюансы. пока еще нахожусь в состоянии просмотра.
Спасибо огромное за твой труд! Невозможно объяснить словами, насколько полезны твои видео. Готовлюсь к собеседованиям, и в одном месте повторить всю базу по алгоритмам с понятным объяснением, так еще и на js... ты лучший и точка))
Чувак, господи, ты мне буквально заменяешь айтишный факультет в вузе) Жалею, что не поступил на программиста, так что хочу своими силами наверстать недостающие знания. Спасибо!
Тимур, в очередной раз хочу поблагодарить за твой труд! Вначале видео я слышал древний хинди, через пару-тройку итераций я уже начал слышать знакомые слова)) Еще итераций 10-15 и мы будем говорить на одном языке!
наверное это совершенно субъективно,но то, как вы объясняете лично мне совершенно гармонично ложится на подкорку. лайк + подписота. теперь осталось только пересмотреть все ролики и отработать каждый на практике.
Тимур, спасибо за Ваш труд! Пару дней назад только начал погружаться в алгоритмы и вообще ничего не понимал в части реализации, сегодня все прекрасно обмозговал и, наконец-то, дошел что и как в этих ваших алгоритмах. Спасибо Вам!
Никак не могла понять, как писать код для алгоритма Дейкстры. 3 раза пересмотрела эту часть. Спасибо, спасибо за такие видео! Просто лучший в своем деле 👍
смотреть в шапке))) на некоторых моментах казалось что голова просто взорвется, реально интересно, для того чтоб код "как-то работал" это не особо нужно и на таких вещах не акцентируют внимание, чтоб не видеть слез студентов. Для понимания и осознания очень полезное видео, видос в стиле "прокачать мозги". Очень понравилось, спасибо
Спасибо Ульби за то, что так явно даешь почувствовать себя слабым программистом ))) Как бы сказали менеджеры, нашел мои точки роста. Ну ничего страшного, идем дальше учиться, step by step! Всем добра :)
Парочка дополнений)) В случае с recursiveBinarySearch можно по умолчанию параметры сделать start = 0, end = array.length. Тогда можно спокойно вызывать функцию как recursiveBinarySearch(array, 10). Так же не учтен базовый случай if (start > end) return -1;. Иначе при передаче несуществующего в массиве элемента начнется бесконечная рекурсия. А так спасибо за классный контент. Мужик, ты крут))
Доброго дня. Всё лаконично и по делу! 1 момент, так оно тоже может сработать, но по моему, в recursiveBinarySearch нужно подфиксать: return recursiveBinarySearch(array, item, 0, middle - 1 ) ---> return recursiveBinarySearch(array, item, start, middle - 1 )
Очень понравился материал. Объяснено доступно и на хороших примерах. Есть, конечно, опечатки, но и них другие написали, а вот что хотелось бы, так это упоминания о балансировке двоичного дерева. Без нее дерево вполне вырождается в связный список с потерей всяких преимуществ. Также, думаю, достойным было бы упоминание, в контексте quickSort, так называемые in place вариант алгоритма без выделения дополнительной памяти. Но, вне всякий сомнений, видео обязательно к просмотру! Спасибо автору!
Спасибо за подробное объяснение базовых алгоритмов и структур данных, а так же их примеров на javascript! Очень помогло для подготовки к собеседованию (Оценка сложности, Бинарный поиск, Сортировка выбором, Сортировка пузырьком, Графы, Стек, Массив, Связный список, Бинарное дерево)
@@UlbiTV да работы много было и дел всяких, на обучение не было времени, сейчас вот выходные будут мега полезные из за твоих видео в про алгоритмы и БД))
@@UlbiTV Я основательно завтра подойдут к этому, как практику прям буду делать, я давно уже хотел разобрать тему алгоритмов, на собесах бывает спрашивают и это прям плюс, да и в целом, полезно. Уверен будет понятно, отпишусь, бро!
Очень даже не плохо, пишу на реакт и вот пришлось пописать на ваниле и поработать с данными, сортировки преобразование, положить что-то, потом его найти и это +- большие данные, вдруг понял что не знаю как лучше и что для чего лучше, в статьях или книгах чет очень сложно и скучно. А тебе братиш спасибо вспомнил немного времена из техникума. Освежились нейронные связи по математике)
@@ВасяПупкин-н9д9с Ну есть у тебя бекенд очень старый с кучей легаси кода, говорят тебе нам нужно новый дизайн и теперь вы делете фронт на реакте, апи переписывать нельзя с беканда как прилетает так прилетает все осталные преобразования делаете на фронтенде. Потому я написал +- большие. Это тот момент, где выбор инструмента уже решает производительность приложения
Брооо, приветствую! Был с тобой с первых видео, часто смотрел ролики и предрекал стони тысяч просмотров) Сейчас захожу на ютьюб редко, но вижу что на сотни тысяч просмотров ты вышел! Очень рад за тебя!))
вероятно, это из-за того, что реальная разработка узкоспециализирована и мы многих вещей не используем, и не знаем т.к это не нужно. Я порой узнаю максимально базовые вещи и удивляюсь, почему не знал этого раньше
если в bubbleSort() во вложенном цикле итеррироватьcя j < array.length - i (на каждой итеррации максимальное значение всплывает в конец, поэтому можно считать эту часть отсортированной); то получим ~ 1/2 n*n
В данном видео до алгоритма Дейкстры (33:04) мне все понравилось. Полезно что с практическими примерами. Спасибо. До этого читал про этот же алгоритм Дейкстры в книге "Грокаем алгоритмы..." и там пояснялось намного понятнее чем здесь: что мы от начальной точки, проставляем в таблицу дистанцию до тех точек, с которыми есть связи, и идем к той точке, к КОТОРОЙ ПУТЬ НАИМЕНЬШИЙ (в данном случае - точка B), а не как здесь в видео говорится что "на 3м этапе рассматриваем вершины из которых можем попасть из точек B и С" - как будто мы идем к ним одновременно. Потом в самой имплементации автор делает все как надо, но вот начальное описание было очень запутанное. К чему я это? если тоже не поняли сначала, рекомендую почитать об этом в книге.
Лайк, подписка, колокол. Для меня джуна-самоучки такие курсы крайне полезны. На канале нашел весь стек, который нужно подучить в нагрузку к документации react, redux(toolkit, saga), next. Большое спасибо.
Видео крутое, спасибо за него! на протяжении всего видео, когда озвучивалась задача для конкретного алгоритма ставил на паузу, и делал свою реализацию. Немного расстроился, на поиске в ширину и алгоритме Дейкстры, что задача звучит как найти кратчайший путь, и я повозился на том, чтобы функция именно выводила этот кратчайший путь, а реализации в видео проверяют только возможность прохождения от точки до точки, и возвращают минимальную стоимость, но не выводят сам кратчайший путь. А хотелось сравнить свою реализацию. Но в остальном всё круто. Спасибо, спустя два года)
Видео шикарное. Но у меня возник ступор во время просмотра. Перемотал раз 5, не мог понять почему сравнивали одинаковое значение внутри цикла где if (array[i] < array [indexMin ])....13:18..... Но потом понял что то была ошибка с индексом. А то я уже расстроился, что даже в таком простом не могу разобраться:))) Очень понравилось видео. Спасибо большое!!!
на 5:28 в таблице для линейного поиска есть неточность: для 1 000 000 (1млн) элементов время будет ~ 16 минут, а 11 дней - это для 1 000 000 000 (1млрд) для бинарного поиска также: для 1 млн время ~ 20 мс
@@AlexKireev так там в начале делается допущение «если 1 операция по времени выполняется за 1 мс, то…» Это просто условное время для наглядности понимания возрастания сложности алгоритма, тут нет привязки к реальному времени.
@UlbiTV, в алгоритме пузырьковой сортировки не учтено "i" при расчете. Поэтому и получилась максимальная сложность алгоритма O(n^2). Чтобы исправить, надо во вложенном цикле делать "j < array.length - i".
В сортировке выбором вложенный цикл - там должно быть j вместо i (примерно 14 минута) А так все супер! Спасибо за разбор алгоритмов на js! Так бы в вузе учили...
Вот сидел ,пытался повторить час и не получилось ,и нашел свой комент давнишний про ошибку .Не пойму как тогда у автора видео все заработало?Наверно ответ уже был готов заранее .Да уж.
Бро ты даже умудряешься в телеге отвечать всяким ублюдком с критикой , за комментарии , эти школьники всегда будут , не обращай внимания , ты выше всего этого 👍
Друзья, таймкоды в описании!) Приятного просмотра! Исходный код урока в описании!
@Арслан Ахметжанов спасибо друг, по большей части структуру брал из книги «грокаем алгоритмы»!)
Йипать капать, дядь, не иначе как ты апгрейднутаяя версия реинкарнации Zorax'a ☺ Не обессудь, я не хотел тебя оскорбить, т.к. многие люди не любят когда их сравнивают с кем либо, пусть даже и в положительном контексте. Просто очень похожая манера подачи и изложения материала, но гораздо более продвинутого и с практическим уклоном. Очень круто объясняешь, четко, последовательно, структурированно да еще и доступным языком. Всего хорошего тебе, спасибо, что делишься своими знаниями.
@@UlbiTV реализацию алгоритма Дейкстры ты обьяснил понятнее, хотя вроде бы код такой же) спасибо)
Спасибо!
Круто 👍. Спасибо.
Начала с книги «гокаем алгоритмы», а тут еще и наглядное пособие с объяснениями! Искренняя благодарность 🙏☀️
Иди обниму! Я ровно в эту секунду сижу в Гугле и ищу норм курс по алгоритмам! Это мистика какая-то!
Да я просто чувствую, что вам нужно)) Обнял!)
выделил время, послушал курс. чо сказать - агонь! то, что курс длится всего час, не означает, что его усвоить можно тоже за час. нужно разделить на логические куски, послушать, повторить код, потом реализовать код самостоятельно. после этого переходить к следующей части. огромное спасибо за труд.
Спасибо Артем) Да, для тех кто новичек в этой теме курс может сложноватым показаться, а на самом деле это азы
@@UlbiTV У вас была задача где вы с графами работали и если да, то что за задача.
@@UlbiTV не то слово) смотрю и вижу фигу) ну что то воспринимается, но как это писать и с чего начинать это треш пока
ахах, хитрый) в сортировке выбором смотрю на эту array[i] во вложенном цикле по j, потом ты запускаешь в ноде - и бах! всё работает :D я сижу такой в непонятках вообще. а ты там в тихую вырезал момент, где исправляешь i на j :D лучше проговаривай явно такие моменты, чтобы люди не путались.
а за видео спасибо. чувак, у тебя неоправданно мало подписчиков. но, думаю, долго это не продлится. продолжай!
Ааххахахахах))) Очень внимательный) Да, обычно я такие моменты обговариваю, тут как-то упустил) Зато убедился, что есть внимательные подписчики!
полчаса сидел и недоумевал, почему это работает и как такое возможно, думал я совсем тупой и не понимаю почему arr[i], вместо arr[j]. Зашел в комменты чисто, чтобы проверить, что кто-то возмутился тоже))
Тоже зашел в комменты найти что же я упустил)
@@UlbiTV Все мы люди. Любой может сделать опечатку. А вот втихую исправлять такие опечатки, мягко говоря, нехорошо. Но ты и сам, думаю, это понимаешь) За видос лайк улетел - контент годный 👍🏻
Реально! Я себе чуть когнитивный диссонанс не заработал, хорошо в комментарии посмотрел что не один я заметил... А как же не заметить, сам же в голове компилируешь каждую задачу и как тут такое пропустить...
Как по книге "Грокаем алгоритмы". Только там на питоне написано. Спасибо за курс!
Да, ее за основу брал) спсасибо!
на гитхабе все примеры лежат на любом языке, в т.ч и на js
Все что есть в этом ролике - ищется в гугле ровно за 2 минуты.
@@alexandrcorbin и чо ?
Я предпочитаю смотреть, поэтому автору ролика большое спасибо.
Идея, реализация + отличная подача = это то, о чем мы так давно мечтали
Огромное спасибо за видео. В видео на 14:25 в строке 8 опечатка - мы перебираем массив array[j] (внутренний цикл), а не array[i]
кайф, 2 дня пытался понять почему не работает. Зачем исправлять и потом делать склейку уже с правильным вариантом? Начинающие потом сидят и ломают голову.
Тоже обратил внимание на эту магию вне Хогвартса. Несколько минут пытался разобраться, почему оно вообще работает, как обычно, ответ нашелся в комментах))
14:34 склейка
Благодаря тебе спасен мой вечер и несколько дестяков тысяч нервных клеток. Спасибо, добрый человек!
27:02 тоже ошибка ,стек переполнится
Очень интересно, про опечатку в selection sort уже написали, я бы хотел добавить замечание по bubble sort подходу, так как там сложность такая же как и при selection sort методе. При каждом проходе первого цикла нет смысла проходить второй цикл полностью, так как верхний элемент уже будет отсортированным. Если применить: j < array.length - i то сортировка проходит за 1378 итераций, а не 2704. Да, по сути как вы и писали это все равно O(n*n), но все же на практике разница в два раза.
правильное замечание, молодец
Перед тем как написать это замечание решил глянуть, не мог же я один это заметить... :) Еще момент , так же нет смысла крутить цикл до конца, если нет ни одного перемещения "пузырька". Для частично отсортированных массивов это имеет важное значение. Пузырьковая все же почти всегда быстрее чем обычным перебором, хоть и не значительно
Видео конечно Огонь, Спасибо!
1) Считаю что на 13:31 допущена ошибка в строчке 8 , которую хорошо показывает дебаг. строчка 8 должна быть вот такая чтобы код чтото сортировал if (array[i] > array[j]) {....
в вашем примере здесь происходит сравнение одной и той же ячейки массива в каждой интерации , и результат условия всегда False.
2) Считаю что на 16:19 допущена ошибка на строчке 6 , , которую хорошо показывает дебаг. во вложенном цикле должно быть j=i а не j=0
поправьте меня если я ошибся
Тоже ее сразу заметил и чуть не офигел, когда он получил отсортированный массив.. Начал переписывать код, но потом все же заметил как он незаметно в вырезанном моменте видео меняет i на j.
я не мог понять .... полностью повторил код и нет сортировки(пока вдуплил аж вспотел. "Ну на видео сортирует ,ошибок нет))".Мозг говорит мы сравниваем две одинаковые переменные .....(Я) как так? на видео все ок ...Отстань))
хорошо что глянул коменты.. а то все никак не выходило.. вроде бы не должно работать а в видео работает) спасибо!
По поводу второго пункта: должно быть j < array.length - i, т.к. самый большой элемент мы переносим в конец массива, и там сортировать уже смысла нет. И тогда получается намного эффективнее, хоть и все еще очень медленно. Сортировка выбором эффективнее, т.к. не меняет элементы местами при каждом случае.
@@mighty_osaker тоже увидел (на bubble_sort(arra)).. когда решил на Python повторить, циклы, т.к. резанула конструкция j=0; l
Трудно было сдержать улыбку, когда Тимур искал кротчайший путь до точки "G" 😁
😂😂😂
нашел - это главное 😂
Путь в точку G за 5 у.е.
Первое, о чем я подумал, когда услышал, это то, что 100% есть чел, который уже запилил этот коммент 🤣🤣
автор не понял вашего смеха, поэтому и знает алгоритмы
Спасибо, так хорошо, просто, быстро и лаконично мне ещё не объясняли! Это очень полезное видео, лучшее, что видел. Огромная благодарность автору за то, что делитесь своими знаниями! Thumb up!
Благодарю за поддержку!
Единственный канал, ролики которого я качаю и храню локально на случай, если отрубят ютуб) Тимур, искренне благодарю тебя за твои труды. Ты делаешь невероятно полезный контент, о чем свидетельствует многотысячное комьюнити вокруг тебя. Крепкого здоровья тебе. Живи вечно 🤝💪
Факт
Если отрубят ютуб это будет означать что ничего из подобной информации тебе уже не пригодиться, лучше тогда уж сохраняй, как развести огонь имея две палки ))))
актуально ведь @@smartaeroflot
Очень серьёзное замечание, тоже уже думаю начать это делать))
Три дня потратил на это видео, оказалось очень полезным! Теперь грокать алгоритмы по книге надеюсь будет легче.)) Спасибо!
Спасибо друг!) Рад что полезно!)
как успехи
@@ДанилДмитриев-я5м уволили его
@@adam-front почему уволили?
@@runar9118грокнул сервер на работе
Спасибо! особенно за "путь из точки А в точку G" и сумму элементов дерева "69" ;D
хах, и поиск кратчайшего пути к точки G :D
К тому же к точке G мы получаем доступ всего за 5 условных единиц, что я считаю очень выгодно 😁
Спасибо, очень понравилось, что в одном видео все основные структуры и алгоритмы представлены + на JS.
Отлично для обзора и повторения.
Но как новичку сами алгоритмы (код) сложнова-то воспринимаются. Хорошо бы еще каждый разобрать подробнее на примере более простым языком, возможно начать с более простого примера и подвести к решению.
грокаем алгоритмы, там код на python, правда версия 2, ну всё же, проще
Шикарнейший урок!!!!!!!!!!!!!!!!!
Спасибо вам!
Крутой подгон. Спасибо большое. И да, поздравляю с 1к. )
еее, спасибо большое друг!)
@@UlbiTV ух ты, уже 1к, вроде только вчера была сотня или две. Поздравляем 🥳🎉🎊
@@TheProfessionalGambler спааааассиииииибооооо!!!!!)))))) лучшие!!!
Спасибо огромное!!! Начал изучать алгоритмы и не знаю с чего подступиться, решил посмотреть предварительно данную тему здесь, и как всегда, не ошибся! Всё строго по делу, без воды, чётко поставленная речь, отличная подача материала. Начал изучать книгу по алгоритмам, отталкиваясь от данного урока лучше усвоение проходит)
Привет. Думал будет просто про алгоритмы как у всех, как первая половина видео, а тут столько всего. Великая работа. Как минимум ты не просто озвучил книгу, но в хорошей форме донес и объяснил нюансы. пока еще нахожусь в состоянии просмотра.
Привет) Старался вместить как можно больше в один ролик) спасибо!
Спасибо огромное за твой труд! Невозможно объяснить словами, насколько полезны твои видео. Готовлюсь к собеседованиям, и в одном месте повторить всю базу по алгоритмам с понятным объяснением, так еще и на js... ты лучший и точка))
Как давно я искал объяснение самых популярных алгоритмов для маленьких и отсталых, как я. Спасибо !
Чувак, господи, ты мне буквально заменяешь айтишный факультет в вузе) Жалею, что не поступил на программиста, так что хочу своими силами наверстать недостающие знания. Спасибо!
Советую смотреть записи фпми мфти или CT lectures, информации больше и ее качество значительно лучше
как успехи
Тимур, в очередной раз хочу поблагодарить за твой труд!
Вначале видео я слышал древний хинди, через пару-тройку итераций я уже начал слышать знакомые слова)) Еще итераций 10-15 и мы будем говорить на одном языке!
Очень круто! Хотелось бы так же увидеть разбор более сложных алгоритмов.
наверное это совершенно субъективно,но то, как вы объясняете лично мне совершенно гармонично ложится на подкорку. лайк + подписота. теперь осталось только пересмотреть все ролики и отработать каждый на практике.
Объясняю как для себя! Спасибо, успешного освоения материалов!
Как раз готовлюсь к собеседованиям, и тут нашел твой ролик, где все базовые алгоритмы собраны в одном месте! Просто лучший
Парнишка гений. Так точно, доступно и просто , не каждый препод сможет подать материал. Лайк, подписка!
я долго думал на счет восьмой строки на 14:30, оказался косячок у тебя, монтируй сразу нормально. Спасибо за материал
Тимур, спасибо за Ваш труд! Пару дней назад только начал погружаться в алгоритмы и вообще ничего не понимал в части реализации, сегодня все прекрасно обмозговал и, наконец-то, дошел что и как в этих ваших алгоритмах. Спасибо Вам!
Класс, то что нужно, четко, без воды. Обожаю твои видосы
Никак не могла понять, как писать код для алгоритма Дейкстры. 3 раза пересмотрела эту часть. Спасибо, спасибо за такие видео! Просто лучший в своем деле 👍
Спасибо тебе огромное за то, что ты делаешь, за этот канал! Ты приносишь огромную пользу людям!
смотреть в шапке))) на некоторых моментах казалось что голова просто взорвется, реально интересно, для того чтоб код "как-то работал"
это не особо нужно и на таких вещах не акцентируют внимание, чтоб не видеть слез студентов. Для понимания и осознания очень полезное видео, видос в стиле "прокачать мозги". Очень понравилось, спасибо
Спасибо дружище!) Алгоритмы больше для бекенда, на фронте редко, когда нужны какие то сложные махинации с данными)
Спасибо Ульби за то, что так явно даешь почувствовать себя слабым программистом ))) Как бы сказали менеджеры, нашел мои точки роста.
Ну ничего страшного, идем дальше учиться, step by step! Всем добра :)
что ты высрал
Парочка дополнений)) В случае с recursiveBinarySearch можно по умолчанию параметры сделать start = 0, end = array.length. Тогда можно спокойно вызывать функцию как recursiveBinarySearch(array, 10). Так же не учтен базовый случай if (start > end) return -1;. Иначе при передаче несуществующего в массиве элемента начнется бесконечная рекурсия. А так спасибо за классный контент. Мужик, ты крут))
Доброго дня. Всё лаконично и по делу!
1 момент, так оно тоже может сработать, но
по моему, в recursiveBinarySearch нужно подфиксать:
return recursiveBinarySearch(array, item, 0, middle - 1 ) ---> return recursiveBinarySearch(array, item, start, middle - 1 )
Привет!) Спасибо за замечание!) Надо будет посмотреть
Очень понравился материал. Объяснено доступно и на хороших примерах. Есть, конечно, опечатки, но и них другие написали, а вот что хотелось бы, так это упоминания о балансировке двоичного дерева. Без нее дерево вполне вырождается в связный список с потерей всяких преимуществ. Также, думаю, достойным было бы упоминание, в контексте quickSort, так называемые in place вариант алгоритма без выделения дополнительной памяти. Но, вне всякий сомнений, видео обязательно к просмотру! Спасибо автору!
Спасибо огромное! Хоть стало понятно как эти алгритмы,про которые я читаю в книге выглядят в коде.🤗
Огромный поклон автору, желаю тебе успеха в твоих делах! Спасибо за твою работу!
Спасибо за подробное объяснение базовых алгоритмов и структур данных, а так же их примеров на javascript!
Очень помогло для подготовки к собеседованию (Оценка сложности, Бинарный поиск, Сортировка выбором, Сортировка пузырьком, Графы, Стек, Массив, Связный список, Бинарное дерево)
Оххх ништяк какой! Несколько дней без ютьюба и тут 2 такие бомбы, алгоритмы да еще и бд! Бро, определил всё воскресенье мое!)
А я думаю, куда Коля пропал!))
@@UlbiTV да работы много было и дел всяких, на обучение не было времени, сейчас вот выходные будут мега полезные из за твоих видео в про алгоритмы и БД))
@@kolyabokov88 отпишись потом, понравилось или нет))
@@UlbiTV Я основательно завтра подойдут к этому, как практику прям буду делать, я давно уже хотел разобрать тему алгоритмов, на собесах бывает спрашивают и это прям плюс, да и в целом, полезно. Уверен будет понятно, отпишусь, бро!
Поплыл уже где-то на середине) Но ощущения приятные - как после качалки, только не в мышцах, а в мозгах.
Позже пересмотрю ещё не раз
Очень даже не плохо, пишу на реакт и вот пришлось пописать на ваниле и поработать с данными, сортировки преобразование, положить что-то, потом его найти и это +- большие данные, вдруг понял что не знаю как лучше и что для чего лучше, в статьях или книгах чет очень сложно и скучно. А тебе братиш спасибо вспомнил немного времена из техникума. Освежились нейронные связи по математике)
а зачем вообще на фронте работать с "большими" данными? это же задача бэка
@@ВасяПупкин-н9д9с Ну есть у тебя бекенд очень старый с кучей легаси кода, говорят тебе нам нужно новый дизайн и теперь вы делете фронт на реакте, апи переписывать нельзя с беканда как прилетает так прилетает все осталные преобразования делаете на фронтенде. Потому я написал +- большие. Это тот момент, где выбор инструмента уже решает производительность приложения
@@SuperMeatB0y сочуствую, хотя это реальный идиотизм ворочать, во фронте большими объемами данных, проще реально бэк переделать
Неделю назад пытался найти что нить на youtube по алгоритмам на JS с примерами кода. И тут такой подарок! Спасибо за видео!
Спасибо!) Помогло?)
@@UlbiTV Ща попробую решить задачку на codewars по графам. И проверим помогло или нет)
@@alexlukas3227 удачи!)
Самая простая реализация быстрой сортировки из всех, что я видел, кайф
Как всегда лайк, и длинннннннныыыыыый комментарий в поддержку автора. Бог преподавания и маэстро краткости, Тимур.
ты просто герой. реально вкладываешься это видно. спасибо за труд. здоровья бро
Бро, ты как всегда радуешь) поддержу комментарием, спасибо за контент!
Продолжаю образовываться с Тимуром, уже почти 6 месяцев, и все еще считаю, что это лучший обучающий контент!!!Лучи добра!
13:22 if(array[j] < array[indexMin]) так как ты сравниваешь одинаковые значения)
Ты крутой, мне очень нравится подача материала! Редакс прямо усвоился хорошенько, просто и без воды)
Спасибо друг) стараюсь, очень рад, что мои гайды помогают! Успехов!
спасибо большое за такой концентрированный материал, без воды все по делу, все понятно, примеры, просто огонь!
Спасибо дружище!) Старался для вас!
Брооо, приветствую! Был с тобой с первых видео, часто смотрел ролики и предрекал стони тысяч просмотров)
Сейчас захожу на ютьюб редко, но вижу что на сотни тысяч просмотров ты вышел!
Очень рад за тебя!))
Олды на месте, помним, любим!
Спасибо за видео. Очень нравится кодовое пояснение на js , сразу легче информация воспринимается.
Спасибо!) рад что полезно!
Просто шикарная подача материала, большое спасибо!
Все здорово. Как будто по быстрому перечитал грокаем алгоритмы, но с примерами на js.
Шикарно, как всегда.
Единственное на selectionSort 14-30 8 строка if(array[j] < array[indexMin])
Спасибо!)
Спасибо большое! Невероятно эффективная скорость и емкость подачи информации! Очень хотелось бы услышать разбор паттернов GoF
спасибо тебе
с array[i] я конечно посидел с карандашиком сверяя, но так даже лучше запоминается
Интересная функция кэширования с написанием cash (деньги), а не cache. Но это я так, на самом деле оч крутое видео, спасибо за него!
Это наверно прикол, как и A to G и 69
Спасибо за урок. Один из немногих, к которому, как и сказал автор, полезно будет возвращаться.
уже 2 года во фронтенде, но ни когда таким полезными вещами не пользовался. Автор спасибо👍
вероятно, это из-за того, что реальная разработка узкоспециализирована и мы многих вещей не используем, и не знаем т.к это не нужно. Я порой узнаю максимально базовые вещи и удивляюсь, почему не знал этого раньше
И вам спасибо!)
Это точно) но как ни крути это все очень полезно
Вообще крутой урок. Подписка и лайк!
Автор лучший человек в мире для меня, помогает понимать такие вещи что очень страшные но если долго стараться то становиться не страшно
Вот это точно надо разобрать как можно внимательней:)) спасибо за инфу, прошлое видео отложил на полку, пока не дорос, а вот это прям нужное
Спасибо!) Надеюсь было полезно!
@@UlbiTV еще не до конца разобрал, но точно полезно:)))
Все есть на этом канале. И алгоритмы и фреймворки и передовые best practice. Спасибо Тимур!
Спасибище!!!! Наконец то доступным языком. Лайк и подписка сразу
если в bubbleSort() во вложенном цикле итеррироватьcя j < array.length - i (на каждой итеррации максимальное значение всплывает в конец, поэтому можно считать эту часть отсортированной); то получим ~ 1/2 n*n
Оо вот это годнота подъехала. Лойс за курс по алгоритмам на javascript.
Спасибо дружище, рад стараться!)
В данном видео до алгоритма Дейкстры (33:04) мне все понравилось. Полезно что с практическими примерами. Спасибо.
До этого читал про этот же алгоритм Дейкстры в книге "Грокаем алгоритмы..." и там пояснялось намного понятнее чем здесь: что мы от начальной точки, проставляем в таблицу дистанцию до тех точек, с которыми есть связи, и идем к той точке, к КОТОРОЙ ПУТЬ НАИМЕНЬШИЙ (в данном случае - точка B), а не как здесь в видео говорится что "на 3м этапе рассматриваем вершины из которых можем попасть из точек B и С" - как будто мы идем к ним одновременно. Потом в самой имплементации автор делает все как надо, но вот начальное описание было очень запутанное.
К чему я это? если тоже не поняли сначала, рекомендую почитать об этом в книге.
Спасибо за ролик! Он помог оперативно повторить материал и вспомнить/узнать детали.
Спасибо за труды! Успехов в развитии
Огромное спасибо за такой формат подачи информации!!!
Понятное описание, всё доступно, взял Ваш файл за альманах!)
Лайк, подписка, колокол. Для меня джуна-самоучки такие курсы крайне полезны. На канале нашел весь стек, который нужно подучить в нагрузку к документации react, redux(toolkit, saga), next. Большое спасибо.
Спасибо друг!) Приятного просмотра!
Видео крутое, спасибо за него! на протяжении всего видео, когда озвучивалась задача для конкретного алгоритма ставил на паузу, и делал свою реализацию. Немного расстроился, на поиске в ширину и алгоритме Дейкстры, что задача звучит как найти кратчайший путь, и я повозился на том, чтобы функция именно выводила этот кратчайший путь, а реализации в видео проверяют только возможность прохождения от точки до точки, и возвращают минимальную стоимость, но не выводят сам кратчайший путь. А хотелось сравнить свою реализацию. Но в остальном всё круто. Спасибо, спустя два года)
спасибо! первое понятное объяснение! дай бог тебе здоровья
Спасибо что ты есть, Тима 😉❤😘👍🏻
Самое доходчивое объяснение алгоритмов!
Старался, спасибо!
Огромное человеческое спасибо за труд! Приятно смотреть и учиться!
Хороший канал, не только среди русскоязычных ... Big like!
Спасибо друг!)
Видео шикарное. Но у меня возник ступор во время просмотра. Перемотал раз 5, не мог понять почему сравнивали одинаковое значение внутри цикла где if (array[i] < array [indexMin ])....13:18..... Но потом понял что то была ошибка с индексом. А то я уже расстроился, что даже в таком простом не могу разобраться:))) Очень понравилось видео. Спасибо большое!!!
Как же вовремя я нашёл это сокровище!
Благодарю Вас! Желаю чтобы у вас в жизни все было хорошо! ТО ЧТО НАДО🙌
нихуя себе, у меня алгоритмы и структуры данных 2 года в универе шли, а ты за час ВСЁ рассказал, еще и на жаваскрипт ! какой молодец
Спасибо , Тимур👾❤️Как всегда на высоте 👍🏻👍🏻👍🏻
Спасибо, Эзам, очень рад слышать!
Отличные объяснения, доступно, понятно. Спасибо!
на 5:28 в таблице для линейного поиска есть неточность: для 1 000 000 (1млн) элементов время будет ~ 16 минут, а 11 дней - это для 1 000 000 000 (1млрд)
для бинарного поиска также: для 1 млн время ~ 20 мс
откуда 16 минут? у меня браузер отработал за 5 мс. Это ж через цикл фор?
@@AlexKireev так там в начале делается допущение «если 1 операция по времени выполняется за 1 мс, то…»
Это просто условное время для наглядности понимания возрастания сложности алгоритма, тут нет привязки к реальному времени.
Лайк не глядя! Всегда годнота! :-)
А еще лучше лайк, а затем и посмотреть!)) Спасибо теска!)
@@UlbiTV последний раз я эти алгоритмы видел в универе, так что посмотреть - это обязательно! 👍
Тебе спасибо за концентрат годноты!
@UlbiTV, в алгоритме пузырьковой сортировки не учтено "i" при расчете.
Поэтому и получилась максимальная сложность алгоритма O(n^2).
Чтобы исправить, надо во вложенном цикле делать "j < array.length - i".
Спасибо) послезавтра на собес. За день должен это понять
В сортировке выбором вложенный цикл - там должно быть j вместо i (примерно 14 минута) А так все супер! Спасибо за разбор алгоритмов на js! Так бы в вузе учили...
Вот сидел ,пытался повторить час и не получилось ,и нашел свой комент давнишний про ошибку .Не пойму как тогда у автора видео все заработало?Наверно ответ уже был готов заранее .Да уж.
Канал радует, не зря подписался, много полезных вещей, спасибо.
Спасибо) рад что полезно!
Просто Вау! Молодчина! Спасибо тебе!
Даже не знаю как выразить тебе благодарность бро, спасибо что тыыы ееесть 😅, делай больше видео пожалуйста 🙏
Бро ты даже умудряешься в телеге отвечать всяким ублюдком с критикой , за комментарии , эти школьники всегда будут , не обращай внимания , ты выше всего этого 👍
Спасибо огромное за твою работу!!! Уже не первый ролик, который упрощает жизнь - не только в плане разработки , как таковой
Спасибо, Тимур! Отличный курс для новичков, многое стало гораздо понятнее
14:32 8я строка) думал до этого момента я туплю, оказалось - опечатка, но автор поправил незаметно) спасибо за видос, оч полезно)
Случайно вышло(
Круть! Спасибо.
Можно еще этот кусок в select and bubble SORT, заменить другим синтаксисом в одну строку:
``let tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
```
====> [ array[j + 1] ] = [ array[j] ];
Нет, значения должны меняться местами. но можно как в Википедии выделить процедуру Swap.
@@МихаилШвыдкой-й5э сорь, да, вот так: ====> [ array[j + 1], array[j] ] = [ array[j] , array[j+1]];
По книге "Глотаем алгоритмы", спасибо объяснил понятно.
Да, часть из книги!) Спасибо!
Сейчас, как раз, эту книгу читаю.
Ничего не понятно, но очень интересно 😂😂😂
тогда уж ' Глотаем алголитмы'
только "ГРОкаем алгоритмы" не надо их глотать =)