Библия алгоритмов и структур данных: сложная тема, объясненная простым языком (временная сложность, нотация «большое О», программирование) на русском
The Bible of Algorithms and Data Structures: A Complex Subject Simply Explained (Runtime Complexity, Big O Notation, Programming) (B08GGGGY5W)
Купить и скачать электронную книгу в форматах PDF, EPUB, FB2, MOBI
Florian Dedov | #60: Информатика
Самый важный навык в информатике!
Область алгоритмов и структур данных — одна из важнейших в информатике. Редко когда вас приглашают на собеседование по программированию в Google, Microsoft или Facebook, и вам не задают вопросов об этом. Это потому, что эти компании понимают, насколько ценны навыки, которые здесь преподаются. Неважно, чем вы занимаетесь — машинным обучением, этичным хакингом, кибербезопасностью или разработкой корпоративного программного обеспечения — вам всегда потребуется умение работать с алгоритмами и структурами данных.
Однако многие считают эту область одной из самых сложных , поскольку она очень абстрактна и запутана . В основном это связано со стилем преподавания. Большинство профессоров в вузах сосредотачиваются на точных математических определениях, а не на понимании предмета. И хотя их нельзя винить за то, что они выполняют свою работу, существуют более эффективные способы изучения этой темы.
Эта книга для всех, кто заинтересован в интуитивно понятном и простом подходе к алгоритмам и структурам данных. Она для всех, кого раздражает запоминание сухих формальных определений. Эта «библия» охватывает все важные и необходимые формальные определения, но в основном фокусируется на упрощении сложных вещей . В конце вы не только научитесь формально анализировать алгоритмы , но и глубоко поймете, что происходит за кулисами и почему все именно так.
После прочтения этой книги вы приобретете следующие навыки:
• Интуитивное понимание алгоритмов и структур данных
• Анализ временной сложности алгоритмов
• Использование обозначения О (Big O)
• Анализ алгоритмов сортировки (пузырьковая сортировка, сортировка слиянием, быстрая сортировка и т.д.).
• Понимание и применение теории графов и связанных с ней алгоритмов (BFS, DFS, алгоритм Крускала, алгоритм Дейкстры)
• Понимание основных структур данных и их временной сложности (связанные списки, стеки, кучи, деревья...).
• Использование самобалансирующихся деревьев (AVL, B-Tree...)
• Понимание и применение хеширования и разрешения коллизий