Рубрика «algorithms»
Пишем алгоритмы на самом ненужном языке в мире и страдаем
2024-10-19 в 16:24, admin, рубрики: algorithms, whitespace, whitespace tutorialПривет!
То, что будет происходить ниже – сущий ад. Я буду писать простейшие программы на языке Whitespace (Но не такие простые, как в прошлой статье). Этот язык настолько ненужный, что оригинальный сайт с интерпретатором для этого языка уже давно мертв, все ссылки на оригинальные гайды, соответственно – тоже. Но, слава интернету, у нас есть webarchive, который и дал мне возможность скачать исходники 2х версий этого языка на Haskell, а также парочку бинарников под линух. Также отрыл пару онлайн-интерпретаторов, которые уже использовал в предыдущей статье.
Поделить нельзя — умножить или алгоритм быстрого деления по методу Ньютона-Рафсона
2024-09-04 в 13:01, admin, рубрики: algorithms, c++, division, optimization, ruvds_статьиВсе мы в школе проходили деление «столбиком» — простой алгоритм, который несложно реализовать, вот только не очень быстрый. В прошлый раз мы рассматривали, как компилятор оптимизирует деление в случаях, когда делитель известен во время компиляции, но применение его напрямую, чтоб оптимизировать деление для делителей, определямых в run-time, невозможно: вычисление констант сдвига и умножения само по себе требует деления.
В этот раз хочется поговорить о другом методе, сводящем деление к умножениям и битовым сдвигам, основанном на методе поиска корней функции.
Читать полностью »
Заглядываем под капот FrozenDictionary: насколько он быстрее Dictionary и почему
2024-08-23 в 5:00, admin, рубрики: .net, algorithms, benchmark, C#, dictionary, hashtableС релизом .NET 8 в арсенале C# разработчиков появилась новая коллекция – FrozenDictionary. Особенность этого словаря в том, что он неизменяемый, но при этом обеспечивает более быстрое чтение по сравнению с обычным Dictionary
Читать полностью »
Учимся летать: симуляция эволюции на Rust. 4-5
2024-06-26 в 14:05, admin, рубрики: algorithms, evolution, genetic algorithms, neural networks, Rust, timeweb_статьи_перевод, генетические алгоритмы, нейронные сети, эволюция
Это предпоследняя часть серии статей по разработке симуляции эволюции с помощью нейронной сети и генетического алгоритма.
В сегодняшнем выпуске:
Сексуальные многоугольники
Сертифицированные ISO диаграммы ASCII
------------
| ...%....|
| ......|
| @>....|
| ...|
| .|
------------
Клевые числа
История началась с разбора использования ресурсов приложением, которое занимается проксированием. Обнаружили, что довольно много времени оно тратит на выбор маршрута (роута), и решили ускорить этот процесс. Описанная в статье оптимизация не требует каких-то особых вложений, усилий или условий, поэтому приведенный код можно забрать к себе и использовать без каких-либо чрезмерных вмешательств.
Роутер
Фильтр Блума
2024-04-10 в 8:01, admin, рубрики: algorithms, bloom filter, data structures, javascript, timeweb_статьи_перевод, Алгоритмы, структуры данных, фильтр блума
У каждого разработчика есть набор инструментов для решения различных задач. Однако со временем возникает необходимость расширять этот набор, чтобы эффективно справляться с более сложными задачами. В этой статье я хочу познакомить вас с инструментом, которым вы, скорее всего, раньше не пользовались. И хотя он подходит для решения узкого спектра задач, его использование может оказаться весьма полезным. Знакомьтесь — "фильтр Блума" (Bloom filter).
Сказ о том, как я за год решил более 600 leetcode задач
2024-01-13 в 13:30, admin, рубрики: algorithm complexity analysis, algorithms, FAANG, leetcode, maangВсем салют!
Хочу рассказать вам историю о том, как я начинал с уровня — «не могу решить даже 1 easy задачу из 10» до уровня — «могу решить каждую вторую medium задачу» и прошел несколько coding сессий в таких компаниях как Meta, Booking, Careem, Avito...
Сумачечая производительность LINQ в .Net7
2022-11-06 в 11:04, admin, рубрики: .net, algorithms, C#, linq, linux, MacOS, performance optimization, sql, unity, Vectorization, микросервисы, Разработка под LinuxИсторически так сложилось, что LINQ взыскал сомнительную репутацию за его слабую производительность. LINQ медленный, аллоцирует память, сложно читается, поэтому обычно его используют как инструмент запросов к БД и то, зачастую сложные запросы легче написать на SQL. Даже на собеседованиях джунов просят не использовать LINQ в алгоритмах.
Как получил оффер от Microsoft
2022-01-31 в 22:51, admin, рубрики: .net, algorithms, C#, interview, leetcode, microsoft, system design, Алгоритмы, ооп, распределенные системыО чем эта статья
Это продолжение моих похождений по ФААНГ. Предыдущая статья была о моем опыте собеседования в Амазоне: https://habr.com/ru/post/646319/.
Здесь я тоже поделюсь всем процессом: как я попал на собеседование, все этапы, вопросы на интервью, как я готовился, некоторые детали офера, и общее впечатление от интервью. Также будут всякие сравнения опыта собеседования в Майкрософте и в Амазоне.
К слову, все собеседования тоже сейчас проходят онлайн, и никаких онсайт интервью нет.