Files
hello-algo/ru/docs/chapter_hello_algo/index.md
T
2026-01-20 15:08:42 +08:00

30 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
comments: true
icon: material/rocket-launch-outline
---
# Введение
Несколько лет назад я поделился на LeetCode серией решений задач "剑指 Offer", что получило много поддержки и одобрения от читателей. В процессе общения с читателями самым частым вопросом был "как начать изучать алгоритмы". Постепенно я заинтересовался этим вопросом.
Слепое решение задач кажется самым популярным методом — простым, прямым и эффективным. Однако решение задач похоже на игру в "сапёра": люди с сильными способностями к самообучению могут успешно обезвредить все мины одну за другой, в то время как те, у кого недостаточно базовых знаний, могут получить множество ударов и отступить под натиском неудач. Чтение учебников также является распространённой практикой, но для тех, кто ищет работу, дипломная работа, рассылка резюме, подготовка к письменным и устным экзаменам уже отнимают большую часть энергии, и изучение толстых книг часто становится сложной задачей.
Если вы также сталкиваетесь с подобными трудностями, то вам повезло, что эта книга "нашла" вас. Эта книга — мой ответ на этот вопрос, и даже если это не оптимальное решение, то, по крайней мере, это активная попытка. Хотя эта книга не поможет вам сразу получить оффер, она поможет вам исследовать "карту знаний" структур данных и алгоритмов, познакомит вас с формой, размером и расположением различных "мин", научит вас различным "методам разминирования". Обладая этими навыками, я верю, что вы сможете более уверенно решать задачи и читать литературу, постепенно выстраивая полную систему знаний.
Я полностью согласен со словами профессора Фейнмана: "Knowledge isn't free. You have to pay attention." В этом смысле эта книга не совсем "бесплатна". Чтобы не подвести ваше драгоценное "внимание", уделённое этой книге, я приложу все усилия и максимум "внимания" для создания этой книги.
Я осознаю свои ограниченные знания и опыт, и хотя содержание книги прошло определённую шлифовку, в нём наверняка всё ещё есть много ошибок. Прошу всех преподавателей и студентов критиковать и исправлять.
![Hello Алгоритмы](../assets/covers/chapter_hello_algo.jpg){ class="cover-image" }
<div style="text-align: center;">
<h2 style="margin-top: 0.8em; margin-bottom: 0.8em;">Hello, Алгоритмы!</h2>
</div>
Появление компьютеров принесло огромные изменения в мир. Благодаря высокой скорости вычислений и отличной программируемости они стали идеальным средством для выполнения алгоритмов и обработки данных. Будь то реалистичная графика в видеоиграх, интеллектуальные решения в автономном вождении, блестящие партии AlphaGo или естественное взаимодействие ChatGPT — все эти приложения являются изящным воплощением алгоритмов на компьютерах.
На самом деле, ещё до появления компьютеров алгоритмы и структуры данных уже существовали в различных уголках мира. Ранние алгоритмы были относительно простыми, например, древние методы счёта и этапы изготовления инструментов. С развитием цивилизации алгоритмы постепенно становились более точными и сложными. От искусного мастерства ремесленников до промышленных продуктов, освобождающих производительные силы, и до научных законов функционирования вселенной — почти за каждой обыденной или поразительной вещью скрываются изящные алгоритмические идеи.
Точно так же структуры данных повсюду: от больших социальных сетей до малых линий метро — многие системы можно смоделировать как "граф"; от большой страны до маленькой семьи — основные организационные формы общества демонстрируют характеристики "дерева"; зимняя одежда похожа на "стек" — то, что надели первым, снимаем последним; тубус для бадминтона подобен "очереди" — с одного конца кладём, с другого достаём; словарь похож на "хеш-таблицу", позволяющую быстро найти нужное слово.
Эта книга стремится через ясные и понятные анимированные иллюстрации и исполняемые примеры кода помочь читателям понять основные концепции алгоритмов и структур данных и научиться реализовывать их через программирование. На этой основе книга стремится раскрыть яркое проявление алгоритмов в сложном мире, показать красоту алгоритмов. Надеюсь, эта книга сможет вам помочь!