18 KiB
Приложение
{width="4.072915573053368in" height="5.270833333333333in"}
Содержание главы
-
Установка программной среды
-
Совместная разработка
-
Глоссарий
Установка программной среды
- Установка IDE
Рекомендуется использовать открытую и быструю интегрированную среду разработки (IDE) VS Code. Откройте официальный сайт VS Code и выберите подходящую вашей операционной системе версию для загрузки и установки.
Рис. 16.1. Загрузка VS Code с официального сайта
VS Code обладает мощной экосистемой расширений и поддерживает выпол- нение и отладку большинства языков программирования. Например, после установки расширения Python Extension Pack можно выполнять отладку кода на Python. Этапы установки показаны на рис. 16.2.
Рис. 16.2. Установка расширений в VS Code
Установка языковой среды
Среда Python
-
Загрузите и установите инструмент Miniconda3, требуется Python 3.10 или более поздняя версия.
-
В магазине расширений VS Code выполните поиск по слову python и уста- новите расширение Python Extension Pack.
-
(Не обязательно) Введите в командной строке pip install black для уста- новки инструмента форматирования кода.
Среда C/C++
-
В системе Windows необходимо установить набор инструментов MinGW (руководство по настройке). В MacOS имеется встроенный компилятор Clang, дополнительная установка не требуется.
-
В магазине расширений VS Code выполните поиск по слову c++ и устано- вите расширение C/C++ Extension Pack.
-
(Не обязательно) Откройте страницу настроек, найдите параметр фор- матирования кода Clang_format_fallback Style и установите его в значе- ние { BasedOnStyle: Microsoft, BreakBeforeBraces: Attach }.
Среда Java
-
Загрузите и установите OpenJDK (версия > JDK 9).
-
В магазине расширений VS Code выполните поиск по слову java и уста- новите расширение Extension Pack for Java.
Среда C#
-
Загрузите и установите .Net 8.0.
-
В магазине расширений VS Code выполните поиск по фразе C# Dev Kit
и установите расширение C# Dev Kit (руководство по настройке).
- Также можно использовать интегрированную среду разработки Visual Studio (руководство по установке).
Среда Go
-
Загрузите и установите Go.
-
В магазине расширений VS Code выполните поиск по слову go и устано- вите Go.
-
Нажмите сочетание клавиш Ctrl + Shift + P, чтобы открыть командную строку. Введите команду go, выберите Go: Install/Update Tools, отметьте все и установите.
Среда Swift
-
Загрузите и установите Swift.
-
В магазине расширений VS Code выполните поиск по слову swift и уста- новите расширение Swift for Visual Studio Code.
Среда JavaScript
-
Загрузите и установите Node.js.
-
(Не обязательно) В магазине расширений VS Code выполните поиск по слову Prettier и установите инструмент форматирования кода.
Среда TypeScript
-
Выполните шаги установки для среды JavaScript.
-
Установите TypeScript Execute (tsx).
-
В магазине расширений VS Code выполните поиск по слову typescript
и установите расширение Pretty TypeScript Errors.
Среда Dart
-
Загрузите и установите Dart.
-
В магазине расширений VS Code выполните поиск по слову dart и уста- новите расширение Dart.
Среда Rust
-
Загрузите и установите Rust.
-
В магазине расширений VS Code выполните поиск по слову rust и уста- новите расширение rust-analyzer.
Совместная разработка
Ввиду ограниченных возможностей автора в книге неизбежно присутству- ют некоторые упущения и ошибки, просим отнестись к этому с пониманием. Если вы обнаружите опечатки, неработающие ссылки, неполное содержание,
- Совместная разработка ❖ 487
двусмысленности в тексте, неясные объяснения или нерациональную структу- ру изложения, пожалуйста, помогите нам в исправлении, чтобы предоставить читателям более качественные учебные ресурсы.
Все идентификаторы GitHub авторов будут представлены на странице ре- позитория книги, в веб-версии и PDF-версии в знак благодарности за их бес- корыстный вклад в сообщество с открытым исходным кодом.
Небольшая корректировка содержимого
В правом верхнем углу каждой страницы есть значок редактирования, как по- казано на рис. 16.3. Следуйте следующим шагам для изменения текста или кода.
-
Нажмите на значок редактирования. Если появится сообщение «Необходи- мо создать ответвление этого репозитория», согласитесь на это действие.
-
Измените содержимое исходного файла Markdown, проверьте правиль- ность содержания и постарайтесь сохранить единый формат оформления.
-
В нижней части страницы заполните описание изменений, затем на- жмите кнопку Propose file change (предложить изменение файла). После перехода на следующую страницу нажмите кнопку Create pull request (Создать запрос на слияние), чтобы инициировать запрос на слияние.
Рис. 16.3. Кнопка редактирования страницы
Изображения нельзя изменить напрямую, необходимо создать новую Issue (Задачу) или оставить комментарий для описания проблемы. Мы как можно быстрее изменим и обновим изображение.
Создание содержимого
Если вы заинтересованы в участии в этом проекте с открытым исходным ко- дом, включая перевод кода на другие языки программирования, расширение содержания статей и т. д., необходимо выполнить следующий рабочий процесс Pull Request (Запрос на слияние).
-
Войдите в GitHub, создайте ответвление хранилища кода книги в свой личный аккаунт.
-
Перейдите на страницу ответвления и используйте команду git clone
для клонирования хранилища на локальный компьютер.
-
На локальном компьютере создайте содержимое и проведите полное те- стирование, чтобы проверить правильность кода.
-
Зафиксируйте изменения, сделанные локально, затем отправьте их в удаленное хранилище.
-
Обновите страницу хранилища и нажмите кнопку Create pull request
(Создать запрос на слияние), чтобы инициировать запрос на слияние.
Развертывание Docker
В корневом каталоге hello-algo выполните следующий сценарий Docker, чтобы настроить доступ к проекту по адресу http://localhost:8000:
docker-compose up -d
Для удаления развертывания выполните следующую команду:
docker-compose down
Глоссарий
В табл. 16.1 приведен англо-русский словарь важных терминов, встречающих- ся в книге. Он поможет вам в чтении англоязычной литературы.
Таблица 16.1. Англо-русский словарь терминов 1's complement обратный код
2's complement дополнительный код
adjacency смежность
adjacency list список смежности
adjacency matrix матрица смежности
algorithm алгоритм
array массив
asymptotic complexity analysis асимптотический анализ сложности
asymptotic upper bound асимптотическая верхняя граница AVL tree АВЛ-дерево
backtracking algorithm алгоритм обратного поиска
balance factor фактор баланса
balanced binary search tree сбалансированное двоичное дерево поиска balanced binary tree сбалансированное двоичное дерево
big-O notation обозначение «О» большое
binary search двоичный поиск
binary search tree двоичное дерево поиска
binary tree двоичное дерево
bottom of the stack основание стека
breadth-first search поиск в ширину
breadth-first traversal обход в ширину
bubble sort сортировка пузырьком
bucket корзина
bucket sort блочная сортировка
cache hit rate коэффициент попадания в кеш
cache memory кеш-память
cache miss промах кеша
code код
complete binary tree совершенное двоичное дерево
connected graph связный граф
constraint ограничение
counting sort сортировка подсчетом
data structure структура данных
degree степень
depth глубина
depth-first search поиск в глубину
depth-first traversal обход в глубину
directed graph ориентированный граф
disconnected graph несвязный граф
divide and conquer разделяй и властвуй
double-ended queue двусторонняя очередь
dynamic array динамический массив
dynamic programming динамическое программирование
edge ребро
edit distance problem задача расстояния редактирования
file файл
front of the queue голова очереди
full binary tree полное двоичное дерево
function функция
graph граф
greedy algorithm жадный алгоритм
hanota problem задача о Ханойских башнях
hard disk жесткий диск
hash collision хеш-коллизия
hash function хеш-функция
hash set хеш-набор
hash table хеш-таблица
head node головной узел
heap куча
heap sort пирамидальная сортировка
heapify упорядочивание кучи
height высота
in-degree входящая степень
index индекс
initial state начальное состояние
insertion sort сортировка вставкой
iteration итерация
knapsack problem задача о рюкзаке
lazy deletion ленивое удаление
leaf node листовой узел
left subtree левое поддерево
left-child node левый дочерний узел
level уровень
level-order traversal обход по уровням
linear probing линейное зондирование
linked list связный список
linked list node, list node узел связного списка, узел списка list список
load factor коэффициент заполнения
loop цикл
max heap максимальная куча
merge sort сортировка слиянием
method метод
min heap минимальная куча
n-queens problem задача об n ферзях
open addressing открытая адресация
out-degree исходящая степень
parent node родительский узел
path путь
perfect binary tree идеальное двоичное дерево
permutations problem задача о перестановках
priority queue приоритетная очередь
pruning обрезка
queue очередь
quick sort быстрая сортировка
radix sort поразрядная сортировка
random-access memory (RAM) оперативное запоминающее устройство (ОЗУ), опера-
тивная память
rear of the queue хвост очереди
recursion рекурсия
recursion tree дерево рекурсии
red-black tree красно-черное дерево
right subtree правое поддерево
right-child node правый дочерний узел
root node корневой узел
searching algorithm алгоритм поиска
selection sort сортировка выбором
separate chaining цепная адресация
sign-magnitude прямой код
solution решение
sorting algorithm алгоритм сортировки
space complexity пространственная сложность
stack куча
state состояние
state-transition equation уравнение перехода состояния subset-sum problem задача о сумме подмножеств
tail node хвостовой узел
tail recursion хвостовая рекурсия
time complexity временная сложность
top of the stack вершина стека
top-k problem поиск k наибольших элементов
tree node узел дерева
undirected graph неориентированный граф
variable переменная
vertex вершина
weighted graph взвешенный граф
Книги издательства «ДМК Пресс» можно купить оптом и в розницу на складе издательства по адресу:
Москва, ул. Электродная, д. 2, стр. 12, офис 7,
тел. +7 (499) 322--19--38,
а также заказать на сайте www.dmkpress.com
с доставкой в любой регион РФ.
Цзинь Юйдун (@krahets)
Алгоритмы и структуры данных с примерами на Python
Главный редактор Мовчан Д. А.
Зам. главного редактора Яценков В. С.
Перевод Шевкун И. А.
Корректор Абросимова Л. А.
Верстка Луценко С. В.
Дизайн обложки Трофимова С. В.
Формат 70×100 1/16.
Гарнитура «PT Serif». Печать цифровая.
Усл. печ. л. 40,14. Тираж 100 экз.
Веб-сайт издательства: www.dmkpress.com


