В этом ролике мы кратко пройдемся по самым популярным алгоритмам, таким как поиск, сортировка, обходы графа, …
41 Comments
Leave a Reply
You must be logged in to post a comment.
В этом ролике мы кратко пройдемся по самым популярным алгоритмам, таким как поиск, сортировка, обходы графа, …
You must be logged in to post a comment.
Друзья, таймкоды в описании!) Приятного просмотра! Исходный код урока в описании!
14:31 :
line 8: if (array[i] < array[indexMin]) {
14:32 :
line 8: if (array[j] < array[indexMin]) {
Я ещё думаю, как при таком условии получается такой результат, оказывается ты потом исправил код, но об этом ничего не сказал
Ошибка незначительна но из-за неё получается совсем другой вывод:
0, 3, 2, 5, 6, 8, 1, 9,
4, 2, 1, 2, 9, 6, 4, 1,
7, -1, -5, 23, 6, 2, 35, 6,
3, 32
вместо:
-5, -1, 0, 1, 1, 1, 2, 2,
2, 2, 3, 3, 4, 4, 5, 6,
6, 6, 6, 7, 8, 9, 9, 23,
32, 35
ULBI БОГ !
хотел уточнить: на 42:51 (при рекурсивном обходе дерева), когда задается условие выхода из рекурсии можно ведь задать if (!el.c){ return sum} и все будет нормально работать? не очень понимаю зачем делать return node.v.
Также при итеративном обходе дерева функция будет работать если мы будем использовать структуру данных очередь, а не стэк ( на 44:19) можно было написать const node = stack.shift(), также все считает, просто обрабатывает не в том порядке.
14:30 на данной минуте у автора в 8 строчке кода написано if (array[i] ….. с таким значением массив не сортировался, потом уже исправил на array[j], но не упомянул что заменил.
автор не может определиться: ставить точки с запятой или не ставить xD =))
ох уж этот javascript. разбаловал программистов!
Спасибо – как всегда крутой контент . Алгоритмы
Понятное описание, всё доступно, взял Ваш файл за альманах!)
хах, алгоритмы на js? круто
решение задачи алгоритмом Дейкстры, это какой уровень сложности задачи по меркам CodeWars?
взрыв мозга
Как будто пересказ книги "Грокаем Алгоритмы" )
Супер видео ) Пока что писал на C C++ и C# скоро нужно будет переходить на JS , как я понял язык довольно не сложен в освоении )
59:15 – с объектами можно так-же сделать – через скобочную нотацию. Тогда в чем реальное отличие между этими структурами данных?)
const obj = new Object();
const objKey = { a: 3 };
obj[objKey] = 2;
console.log(obj[objKey]); //2
obj[true] = "true";
console.log(obj[true]);//"true"
Спасибо большое! Очень быстро и доходчиво
Very informative! thank you, man!
Видео понравилось, большое спасибо автору)
почему если обойти с помощью обычного цикла for дерево то сумма выходит 54? 42:00
Очень классное обзорное видео, спасибо!!
14.30 минуте автор с помощью монтажа исправил ошибку и без комментариев, будте внимательней если у вас, что то идет не так, как надо
Брооо, приветствую! Был с тобой с первых видео, часто смотрел ролики и предрекал стони тысяч просмотров)
Сейчас захожу на ютьюб редко, но вижу что на сотни тысяч просмотров ты вышел!
Очень рад за тебя!))
Спасибо
Спасибо!!!!
Прекрасный материал – спасибо!
Благодарю! Лайк на месте. Урок на высоте!!! Великолепен, нагляден, понятен.
Спасибо, чётко и понятно)
Спасибо, отлично)
Было бы ещё интересно сферы применения set map
Слушай, реально, все рабочее и ты возможно делаешь контент для людей который прям шарят, но пойми тебя и новички смотрят, делаешь одно говоришь другой, при этом говоришь со скоростью такой, что воспринимать что-либо невозможно, пожалуйста сделай что-то с этим…
Там у вас ошибка в слайде 5:50, где линейный алгоритм, если
100 элементов обрабатывается за 100мс, а 10к – за 10 сек, то
1000к эл – за 1000 с, это 16мин 40с
Времени в 11 дней соответствует обработка 1млрд элементов(11дней+почти 14часов)
Это тест на внимательность или ошибка?
Каждый раз, когда смотрю твои видео – открываются новые горизонты. И приходится переделывать свое приложение, чтобы соответствовать )))
прогоняю алгоритмы ролика на Python… и что то функцию кэширования не удалось воспроизвести the same….я так и не понял можно ли сделать замыкание т.к. сделал Автор … мой вариант под определение Python-Замыкания…
def cash_def(cash):
def factor_cash(n):
if bool(cash.get(n)):
print('value <n:',n,'> take aus cash')
return cash[n]
else:
nc = n
rezult = 1
while n > 1:
rezult *= n
n -= 1
cash[nc] = rezult
print('value <n:', nc, '> solved bei def:')
return rezult
return factor_cash
solve_cash = cash_def({})
print(solve_cash(5))
print(solve_cash(4))
print(solve_cash(3))
print(solve_cash(5))
print(solve_cash(4)) код рабочий, но Автор пользуется 2 независимыми функциями, а у меня получилось замыкание только через вложенную сделать… может кто подскажет из питонистов? это особенности Python или я не так воспроизвел?
Спасибо за крутые уроки! Все очень полезно и без воды!
Мне кажется, алгоритм Дейкстры можно реализовать эффективнее и короче. У меня получилось так:
type GraphNode = {
[name: string]: number
}
type Graph = {
[name: string]: GraphNode
}
const graph: Graph = {}
graph.a = {b: 2, c: 1}
graph.b = {f: 7}
graph.c = {d: 5, e: 2}
graph.d = {f: 2}
graph.e = {f: 1}
graph.f = {g: 1}
graph.g = {}
function shortPath(graph: Graph, start: string, end: string): number {
let map = { [start]: 0 }
let queue = [start]
let current;
while (queue.length > 0) {
current = queue.shift()!
for(let child in graph[current]) {
const distance = map[current] + graph[current][child]
map[child] = map[child] ? Math.min(map[child], distance) : distance
queue.push(child)
}
}
return map[end]
}
console.log('shortPath', shortPath(graph, 'a', 'g'));
Привет! Мин 10 – 15 ломал голову, почему ничего не работает алгоритме сортировки выбором. Только потом заметил, что у тем с начала во втором цикле в if array[i], а после склейки array[j]))
Спасибо! Наконец-то что-то понятно. Ещё бы "не вырезать / или делать" паузы, чтоб мозги успевали улавливать темп. Тот же, алгоритм Дейикстры – вообще иероглифы кода, и где мы используем end – тоже не понятно).
51:15 дорогая операция вставки в списке получилась. Лучше хранить ссылку на последний элемент, тогда добавление нового элемента в конец списка станет очень дешёвым
11:00 переменная found в данном алгоритме явно лишняя
Чувак! у тебя очень крутой контент
27:18 – Бинарный поиск через рекурсию, забыл прописать базовый случай (если элемента нету, то функция будет выполняться бесконечно), нужно добавить if (start > end) return null
6:22, ну ты и дурак.
Годно
Спасибо тебе за такой труд!