This commit is contained in:
krahets
2026-04-03 18:46:15 +08:00
parent 377736b1bd
commit 9d21ca86b0
352 changed files with 46563 additions and 11262 deletions
+8 -8
View File
@@ -6,7 +6,7 @@ comments: true
Возможности автора ограничены, поэтому в книге неизбежно могут встречаться упущения и ошибки. Просим отнестись к этому с пониманием. Если вы заметите опечатки, неработающие ссылки, пропуски в содержании, двусмысленные формулировки, неясные объяснения или неудачную структуру изложения, пожалуйста, помогите нам это исправить, чтобы читатели получили более качественный учебный ресурс.
GitHub ID всех [участников](https://github.com/krahets/hello-algo/graphs/contributors) будут указаны на главных страницах репозитория книги, веб-версии и PDF-версии в знак благодарности за их бескорыстный вклад в сообщество открытого исходного кода.
Все GitHub ID [авторов](https://github.com/krahets/hello-algo/graphs/contributors) будут указаны на главных страницах репозитория книги, веб-версии и PDF-версии в знак благодарности за их бескорыстный вклад в сообщество открытого исходного кода.
!!! success "Сила открытого исходного кода"
@@ -16,31 +16,31 @@ GitHub ID всех [участников](https://github.com/krahets/hello-algo/
### 1.   Небольшие правки содержания
Как показано на рисунке 16-3, в правом верхнем углу каждой страницы есть "значок редактирования". Вы можете изменить текст или код следующим образом.
Как показано на рисунке 16-3, в правом верхнем углу каждой страницы есть "значок редактирования". Текст или код можно изменить следующим образом.
1. Нажмите на "значок редактирования". Если появится сообщение "You need to fork this repository", согласитесь с этим действием.
2. Измените содержимое исходного Markdown-файла, проверьте корректность правок и постарайтесь сохранить единый стиль оформления.
3. Внизу страницы заполните описание изменений, затем нажмите кнопку "Propose file change". После перехода на следующую страницу нажмите кнопку "Create pull request", чтобы создать pull request.
3. Внизу страницы заполните описание изменений, затем нажмите кнопку "Propose file change". После перехода на следующую страницу нажмите кнопку "Create pull request", чтобы отправить pull request.
![Кнопка редактирования страницы](contribution.assets/edit_markdown.png){ class="animation-figure" }
<p align="center"> Рисунок 16-3 &nbsp; Кнопка редактирования страницы </p>
Изображения нельзя изменить напрямую, поэтому проблему с ними нужно описывать через новый [Issue](https://github.com/krahets/hello-algo/issues) или комментарий. Мы постараемся как можно быстрее перерисовать и заменить изображение.
Изображения нельзя изменить напрямую, поэтому проблему с ними нужно описывать через новый [Issue](https://github.com/krahets/hello-algo/issues) или комментарий. Мы постараемся как можно быстрее исправить и обновить изображение.
### 2. &nbsp; Создание содержания
Если вам интересно участвовать в этом проекте с открытым исходным кодом, например переводить код на другие языки программирования или расширять содержание статей, то следует придерживаться следующего рабочего процесса Pull Request.
Если вам интересно участвовать в этом проекте с открытым исходным кодом, например переводить код на другие языки программирования или расширять содержание статей, то следует придерживаться следующего процесса Pull Request.
1. Войдите в GitHub и сделайте Fork [репозитория книги](https://github.com/krahets/hello-algo) в свой личный аккаунт.
2. Перейдите на страницу своего Fork-репозитория и с помощью команды `git clone` клонируйте репозиторий локально.
3. Создавайте и редактируйте содержание локально, затем проведите полное тестирование и проверьте корректность кода.
4. Сделайте Commit для локальных изменений, после чего выполните Push в удаленный репозиторий.
5. Обновите страницу репозитория и нажмите кнопку "Create pull request", чтобы отправить pull request.
4. Зафиксируйте локальные изменения, после чего выполните Push в удаленный репозиторий.
5. Обновите страницу репозитория и нажмите кнопку "Create pull request", чтобы инициировать pull request.
### 3. &nbsp; Развертывание Docker
В корневом каталоге `hello-algo` выполните следующий Docker-скрипт, после чего проект будет доступен по адресу `http://localhost:8000`:
В корневом каталоге `hello-algo` выполните следующий Docker-скрипт, после чего проект станет доступен по адресу `http://localhost:8000`:
```shell
docker-compose up -d
+4 -4
View File
@@ -6,13 +6,13 @@ comments: true
## 16.1.1 &nbsp; Установка IDE
В качестве локальной интегрированной среды разработки (IDE) рекомендуется использовать открытую и легковесную VS Code. Перейдите на [официальный сайт VS Code](https://code.visualstudio.com/), выберите версию для своей операционной системы и установите ее.
В качестве локальной интегрированной среды разработки (IDE) рекомендуется использовать открытую и быструю VS Code. Перейдите на [официальный сайт VS Code](https://code.visualstudio.com/), выберите версию для своей операционной системы и установите ее.
![Загрузка VS Code с официального сайта](installation.assets/vscode_installation.png){ class="animation-figure" }
<p align="center"> Рисунок 16-1 &nbsp; Загрузка VS Code с официального сайта </p>
VS Code обладает мощной экосистемой расширений и поддерживает запуск и отладку большинства языков программирования. Например, после установки расширения "Python Extension Pack" можно отлаживать код на Python. Процесс установки показан на рисунке 16-2.
VS Code обладает мощной экосистемой расширений и поддерживает выполнение и отладку большинства языков программирования. Например, после установки расширения "Python Extension Pack" можно отлаживать код на Python. Процесс установки показан на рисунке 16-2.
![Установка расширений VS Code](installation.assets/vscode_extension_installation.png){ class="animation-figure" }
@@ -22,13 +22,13 @@ VS Code обладает мощной экосистемой расширени
### 1. &nbsp; Среда Python
1. Загрузите и установите [Miniconda3](https://docs.conda.io/en/latest/miniconda.html), требуется Python 3.10 или более новая версия.
1. Загрузите и установите [Miniconda3](https://docs.conda.io/en/latest/miniconda.html), требуется Python 3.10 или более поздняя версия.
2. В магазине расширений VS Code найдите `python` и установите Python Extension Pack.
3. (Необязательно) Введите в командной строке `pip install black`, чтобы установить инструмент форматирования кода.
### 2. &nbsp; Среда C/C++
1. В Windows требуется установить [MinGW](https://sourceforge.net/projects/mingw-w64/files/) ([руководство по настройке](https://blog.csdn.net/qq_33698226/article/details/129031241)); в macOS Clang уже установлен по умолчанию.
1. В Windows требуется установить [MinGW](https://sourceforge.net/projects/mingw-w64/files/) ([руководство по настройке](https://blog.csdn.net/qq_33698226/article/details/129031241)); в macOS компилятор Clang уже установлен по умолчанию.
2. В магазине расширений VS Code найдите `c++` и установите C/C++ Extension Pack.
3. (Необязательно) Откройте страницу Settings, найдите параметр форматирования `Clang_format_fallback Style` и задайте значение `{ BasedOnStyle: Microsoft, BreakBeforeBraces: Attach }`.
+9 -7
View File
@@ -4,10 +4,10 @@ comments: true
# 16.3 &nbsp; Глоссарий
В таблице 16-1 перечислены важные термины, встречающиеся в книге. Обратите внимание на следующие моменты.
В таблице 16-1 приведены важные термины, встречающиеся в книге. Обратите внимание на следующие моменты.
- Рекомендуем запомнить английские названия терминов, чтобы легче читать англоязычную литературу.
- В русской версии приводится единый рекомендуемый перевод каждого термина.
- Рекомендуем запомнить английские названия терминов, чтобы легче читать англоязычные материалы.
- В русской версии для каждого термина приводится единый рекомендуемый перевод.
<p align="center"> Таблица 16-1 &nbsp; Важные термины по структурам данных и алгоритмам </p>
@@ -57,7 +57,7 @@ comments: true
| rear of the queue | хвост очереди |
| hash table | хеш-таблица |
| hash set | хеш-набор |
| bucket | корзина |
| bucket | бакет |
| hash function | хеш-функция |
| hash collision | хеш-коллизия |
| load factor | коэффициент заполнения |
@@ -80,8 +80,8 @@ comments: true
| height | высота |
| depth | глубина |
| perfect binary tree | идеальное двоичное дерево |
| complete binary tree | совершенное двоичное дерево |
| full binary tree | полное двоичное дерево |
| complete binary tree | полное двоичное дерево |
| full binary tree | строгое двоичное дерево |
| balanced binary tree | сбалансированное двоичное дерево |
| binary search tree | двоичное дерево поиска |
| AVL tree | АВЛ-дерево |
@@ -89,7 +89,9 @@ comments: true
| level-order traversal | обход по уровням |
| breadth-first traversal | обход в ширину |
| depth-first traversal | обход в глубину |
| binary search tree | двоичное дерево поиска |
| pre-order traversal | прямой обход |
| in-order traversal | симметричный обход |
| post-order traversal | обратный обход |
| balanced binary search tree | сбалансированное двоичное дерево поиска |
| balance factor | фактор баланса |
| heap | куча |