mirror of
https://github.com/krahets/hello-algo.git
synced 2026-07-16 16:56:06 +00:00
30 lines
7.1 KiB
Markdown
30 lines
7.1 KiB
Markdown
---
|
||
comments: true
|
||
icon: material/rocket-launch-outline
|
||
---
|
||
|
||
# Введение
|
||
|
||
Несколько лет назад я поделился на LeetCode серией решений задач "剑指 Offer", что получило много поддержки и одобрения от читателей. В процессе общения с читателями самым частым вопросом был "как начать изучать алгоритмы". Постепенно я заинтересовался этим вопросом.
|
||
|
||
Слепое решение задач кажется самым популярным методом — простым, прямым и эффективным. Однако решение задач похоже на игру в "сапёра": люди с сильными способностями к самообучению могут успешно обезвредить все мины одну за другой, в то время как те, у кого недостаточно базовых знаний, могут получить множество ударов и отступить под натиском неудач. Чтение учебников также является распространённой практикой, но для тех, кто ищет работу, дипломная работа, рассылка резюме, подготовка к письменным и устным экзаменам уже отнимают большую часть энергии, и изучение толстых книг часто становится сложной задачей.
|
||
|
||
Если вы также сталкиваетесь с подобными трудностями, то вам повезло, что эта книга "нашла" вас. Эта книга — мой ответ на этот вопрос, и даже если это не оптимальное решение, то, по крайней мере, это активная попытка. Хотя эта книга не поможет вам сразу получить оффер, она поможет вам исследовать "карту знаний" структур данных и алгоритмов, познакомит вас с формой, размером и расположением различных "мин", научит вас различным "методам разминирования". Обладая этими навыками, я верю, что вы сможете более уверенно решать задачи и читать литературу, постепенно выстраивая полную систему знаний.
|
||
|
||
Я полностью согласен со словами профессора Фейнмана: "Knowledge isn't free. You have to pay attention." В этом смысле эта книга не совсем "бесплатна". Чтобы не подвести ваше драгоценное "внимание", уделённое этой книге, я приложу все усилия и максимум "внимания" для создания этой книги.
|
||
|
||
Я осознаю свои ограниченные знания и опыт, и хотя содержание книги прошло определённую шлифовку, в нём наверняка всё ещё есть много ошибок. Прошу всех преподавателей и студентов критиковать и исправлять.
|
||
|
||
{ class="cover-image" }
|
||
|
||
<div style="text-align: center;">
|
||
<h2 style="margin-top: 0.8em; margin-bottom: 0.8em;">Hello, Алгоритмы!</h2>
|
||
</div>
|
||
|
||
Появление компьютеров принесло огромные изменения в мир. Благодаря высокой скорости вычислений и отличной программируемости они стали идеальным средством для выполнения алгоритмов и обработки данных. Будь то реалистичная графика в видеоиграх, интеллектуальные решения в автономном вождении, блестящие партии AlphaGo или естественное взаимодействие ChatGPT — все эти приложения являются изящным воплощением алгоритмов на компьютерах.
|
||
|
||
На самом деле, ещё до появления компьютеров алгоритмы и структуры данных уже существовали в различных уголках мира. Ранние алгоритмы были относительно простыми, например, древние методы счёта и этапы изготовления инструментов. С развитием цивилизации алгоритмы постепенно становились более точными и сложными. От искусного мастерства ремесленников до промышленных продуктов, освобождающих производительные силы, и до научных законов функционирования вселенной — почти за каждой обыденной или поразительной вещью скрываются изящные алгоритмические идеи.
|
||
|
||
Точно так же структуры данных повсюду: от больших социальных сетей до малых линий метро — многие системы можно смоделировать как "граф"; от большой страны до маленькой семьи — основные организационные формы общества демонстрируют характеристики "дерева"; зимняя одежда похожа на "стек" — то, что надели первым, снимаем последним; тубус для бадминтона подобен "очереди" — с одного конца кладём, с другого достаём; словарь похож на "хеш-таблицу", позволяющую быстро найти нужное слово.
|
||
|
||
Эта книга стремится через ясные и понятные анимированные иллюстрации и исполняемые примеры кода помочь читателям понять основные концепции алгоритмов и структур данных и научиться реализовывать их через программирование. На этой основе книга стремится раскрыть яркое проявление алгоритмов в сложном мире, показать красоту алгоритмов. Надеюсь, эта книга сможет вам помочь! |