Frontend-разработчик
· 23.06 · ред.Вопрос
Пригождались вам в работе с кодом знания алгоритмов?
13 комментов
· 25.06
Алгоритмы можно применять не только в коде)
С помощью бин. поиска и небольших вариаций локализовывал и находил ошибки в автоматической верстке большого документа. Мой наставник с работы, при всем опыте и желании не смог найти(
0
ответить
коммент удалён
· 23.06
Да, балансировка нагрузки на станции сборки. Задача о многомерном рюкзаке. Очерка пропускной способности автоматического склада - графовые алгоритмы.
0
ответить
коммент удалён
· 23.06
А с кодом ? Да , бывало. В основном при оптимизации поиска и т.д.
0
ответить
коммент удалён
· 23.06
Да , я с помощью binary_search как-то нашёл обрыв в большом шланге с проводами:)
0
ответить
коммент удалён
· 23.06
По молодости на одной из первых работ закодила ветвистое такое дерево 😁 коллеги вежливо молча переписали
0
ответить
коммент удалён
· 23.06
Я не разраб, но вспомнил кейс интересный.
У нас был любопытный учебный проект в ЯП. Решить задачу, уложившись в задействованную память и время выполнения.
Задачу я решил быстро, условия все соблюдены. Но потом что-то не отпускало. Я исписал два листа А4, выясняя математические закономерности, нашел их, упаковал в рекурсию и получил что-то в духе 20-кратного улучшения производительности.
Рекурсия давала что-то около 10x, а математические закономерности еще 2x.
Летало как пуля.
0
ответить
коммент удалён
· 25.06
Могу поинтересоваться задачей?
0
ответить
ответ удалён
· 25.06
Я вот не помню. Если каким-то образом мне удастся её найти, я, конечно, пошарю. Там целый блок был из кучи задач алгоритмических, и эта была среди них)
0
ответить
ответ удалён
· 25.06
Спасибо!
0
ответить
ответ удалён
· 25.06
Нашел код. Закинул в Клод. Вот:
Это «Фибоначчи по модулю» из 2-го спринта («Основные структуры») курса «Алгоритмы и структуры данных».
Формулировка: у Тимофея было N стажёров (0 ≤ N ≤ 10⁶); i-й стажёр делал столько коммитов, сколько два предыдущих вместе, а первые два сделали по одному коммиту. То есть F₀ = F₁ = 1, а для i ≥ 2 выполняется Fᵢ = Fᵢ₋₁ + Fᵢ₋₂; нужно найти последние k цифр числа Fₙ. На входе в одной строке два целых числа n (0 ≤ n ≤ 10⁶) и k (1 ≤ k ≤ 8); на выходе — последние k цифр Fₙ, а если цифр меньше k, то само число без ведущих нулей.
Пример: ввод 3 1 → вывод 3
0
ответить
ответ удалён
· 25.06
Это стандартная задача на рекурсию, но здорово что получилось!
Но рекурсию обычно не сильно оптимизированы в языках программирования (
0
ответить
ответ удалён
· 25.06
Я помучил Клода. Оказывается там выигрыш не за счет рекурсии, а за счет математики (определенных свойст чисел Ф.) с потенциалом ускорения 2400x против обычного цикла в лоб. Но я его даже до конца не реализовал.
0
ответить
ответ удалён
· 26.06
Вот не пойму что даст статистика? Если ты до уровня мидл, то от тебя нужно знание инструмента, а если выше, то алгоритмы пол беды тебе нужно знать конкурентов и отраслевые идеи (это не только алгоритмы прошлого, но и алгоритмы будущего и тут сыпиться вообще все).
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён