top of page
блог
// Корисне та цікаве під каву
Всі дописи
Два вказівники та sliding window: як перетворити O(n²) на O(n)
Half the easy/medium задач на масивах на співбесідах розв'язується одним прийомом: тримаємо два індекси і рухаємо їх залежно від порівняння. Ключова властивість — кожен вказівник монотонний: він рухається лише в один бік і ніколи не повертається. Тому сумарна кількість кроків обмежена довжиною масиву — і наївний вкладений цикл за O(n²) перетворюється на один прохід за O(n). «Два вказівники» — це насправді парасолька над кількома різними патернами. Їх легко сплутати, бо всі тр
Ivan Petrushenko
2 дні томуЧитати 3 хв
Рекурсія та backtracking
Рекурсія — це насправді дві ідеї, які випадково мають одну назву. З погляду алгоритмів це стратегія: звести задачу до меншої версії тієї самої задачі, розв'язати меншу — і зібрати відповідь. Так працюють divide-and-conquer алгоритми: mergesort, quicksort, обхід дерев. З погляду коду це просто функція, яка викликає сама себе. Обидва погляди описують те саме з різних боків: рекурсивна функція — це рекурсивний алгоритм, записаний у коді. У цій статті розберемо, з чого складаєтьс
Ivan Petrushenko
2 дні томуЧитати 3 хв


Big O та асимптотичний аналіз: як оцінити складність алгоритмів
Коли є два алгоритми, що розв'язують одну задачу, хочеться заздалегідь знати, який із них швидший — ще до того, як писати код. Саме для цього існує асимптотичний аналіз і нотація Big O (O велике). У цій статті розберемо, як рахувати складність алгоритмів, що означають записи на кшталт O(n), O(log n) чи O(n²), і як аналізувати цикли та рекурсію на конкретних прикладах. Навіщо взагалі оцінювати час роботи алгоритму Здавалося б, можна просто запустити код і заміряти час. Але з ц
Ivan Petrushenko
7 днів томуЧитати 5 хв


Бінарний пошук і бінпошук по відповіді
Бінарний пошук — той алгоритм, який усі «знають», але майже ніхто не пише з першого разу без помилок на одиницю. Причина проста: його зазвичай вчать як рецепт: l, r, m, ділимо навпіл. Але насправді бінарний пошук треба розуміти через інваріант. А ще його майже ніколи не показують у тій формі, в якій він реально трапляється на роботі: не «знайти елемент у масиві», а «знайти мінімальне значення параметра, при якому система ще витримує навантаження». Розберемо обидва випадки. 1.
Ivan Petrushenko
9 лип.Читати 6 хв


Навіщо програмісту вивчати алгоритми?
Сьогодні легко подумати, що алгоритми — це щось неважливе. Є AI, Copilot, ChatGPT, готові бібліотеки, фреймворки, managed-сервіси, no-code і low-code інструменти. Здається, що інженеру вже не обов’язково глибоко розуміти, як працює сортування, пошук, хеш-таблиці, графи, черги чи heap. Можна взяти готову бібліотеку, попросити AI написати код — і рухатися далі. Але в реальній інженерії проблема часто не в тому, що код “не працює”. Він працює. Просто не масштабується. Не завжди
Ivan Petrushenko
3 лип.Читати 7 хв


BFS і DFS: алгоритми обходу графа і їх складність
BFS і DFS — два фундаментальні алгоритми обходу графа. Обидва відвідують кожну вершину рівно один раз, але роблять це в різному порядку і через різні структури даних. Саме порядок обходу визначає, яка задача буде вирішена коректно, а яка ні. Як працює BFS BFS алгоритм (Breadth-First Search, обхід у ширину) обходить граф рівень за рівнем. Спочатку всі сусіди стартової вершини, потім їхні сусіди, і так далі. Для цього використовується черга (queue) — структура FIFO: першою обро
Yuliia CS Osvita
2 лип.Читати 2 хв


Жадібність в роботі: як влаштований алгоритм Dijkstra
Алгоритм нідерландського вченого Едсгера Дейкстри знаходить найкоротші шляхи від однієї вершини графа до всіх інших у зваженому графі з невід'ємними вагами. Саме на ньому працює більшість навігаційних систем: граф — це дорожня мережа, ваги — відстані або час у дорозі, стартова вершина — ваше поточне місцезнаходження. Задача зводиться до пошуку оптимального маршруту, і Дейкстра вирішує її ефективно. Dijkstra не працює коректно з графами, що містять ребра з від'ємними вагами, т
Yuliia CS Osvita
30 черв.Читати 3 хв


Алгоритм Bellman-Ford: пошук найкоротшого шляху з від'ємними вагами
Уявіть граф, де деякі ребра мають від'ємну вагу. Не абстрактно, а цілком реально: наприклад, фінансова мережа, де конвертація валют через певний маршрут дає прибуток, а не витрату. Або логістика, де деякі переміщення субсидовані і знижують загальну вартість маршруту. Саме для таких задач існує Bellman-Ford — алгоритм пошуку найкоротшого шляху, який коректно працює з від'ємними вагами і вміє виявляти негативні цикли. За це він платить вищою складністю, але в задачах, де вага р
Yuliia CS Osvita
26 черв.Читати 4 хв


Три тижні та 120 задач. Випускниця Оля Войчик про те, як потрапити в FAANG
Оля Войчик, Software Engineer в Google та випускниця курсу Performance Engineering в CS Osvita, розповіла в блозі DOU про свій шлях хайрингу в Google в Польщі. «Коли зʼявилася можливість спробувати свої сили в Google, я тоді не планувала змінювати роботу, не готувалася роками і не цілилася потрапити в FAANG. Я прийшла в програмування зі бізнес-аналітики, згодом опанувала C++, а до першого Google-інтерв’ю мала всього два тижні на підготовку». З бізнес-аналітики в C++ Я вступи
Yuliia CS Osvita
19 черв.Читати 4 хв
Чому ШІ — не кінець інженерії, а її продовження
Колись здавалося, що low-code та no-code платформи змінять усе. Бізнес зможе самостійно створювати внутрішні інструменти, автоматизувати процеси й майже не залучати програмістів. Обіцянка звучала дуже привабливо: менше коду, менше залежності від інженерних команд, швидший результат. І частково це справді працювало. Прості сценарії можна було зібрати швидко: форма, таблиця, базовий workflow, інтеграція з кількома сервісами. Але щойно з’являлися нюанси — складна бізнес-логіка,
Ivan Petrushenko
24 вер. 2025 р.Читати 2 хв
Як навчатися ефективно?
Одна з найкращих інвестицій — це інвестиція в себе та свою освіту. А в IT вміння регулярно й ефективно навчатися — одна з головних професійних переваг. Технології змінюються, інструменти застарівають, підходи оновлюються. Але здатність розбиратися в складному, будувати системне розуміння й не здаватися після першого фейлу залишається з вами надовго. Ми зібрали кілька порад, які справді працюють: ➡️ виробіть звичку; ➡️ знайдіть те, що вас захоплює; ➡️ не здавайтеся, коли склад
Ivan Petrushenko
14 вер. 2025 р.Читати 3 хв
19.07.26
читати
3
хв
Два вказівники та sliding window: як перетворити O(n²) на O(n)
14.07.26
читати
5
хв
Big O та асимптотичний аналіз: як оцінити складність алгоритмів
26.06.26
читати
4
хв
Алгоритм Bellman-Ford: пошук найкоротшого шляху з від'ємними вагами
19.06.26
читати
4
хв
Три тижні та 120 задач. Випускниця Оля Войчик про те, як потрапити в FAANG
Ще не писали про це :)
Спробуйте задати інші параметри пошуку
bottom of page