From e55dc809b6fc0053747d048ef7b3ecb1fd9a4672 Mon Sep 17 00:00:00 2001 From: Oleksii Trekhleb Date: Wed, 9 Dec 2020 08:37:37 +0100 Subject: [PATCH] Add README in Russian. --- README.es-ES.md | 3 ++- README.fr-FR.md | 3 ++- README.ja-JP.md | 3 ++- README.ko-KR.md | 3 ++- README.md | 5 ++-- README.pl-PL.md | 3 ++- README.pt-BR.md | 3 ++- README.ru-RU.md | 68 ++++++++++++++++++++----------------------------- README.tr-TR.md | 3 ++- README.zh-CN.md | 3 ++- README.zh-TW.md | 3 ++- 11 files changed, 49 insertions(+), 51 deletions(-) diff --git a/README.es-ES.md b/README.es-ES.md index 5f190efc..a65ca9f0 100644 --- a/README.es-ES.md +++ b/README.es-ES.md @@ -18,7 +18,8 @@ _Léelo en otros idiomas:_ [_Polski_](README.pl-PL.md), [_Français_](README.fr-FR.md), [_Português_](README.pt-BR.md), -[_Türk_](README.tr-TR.md) +[_Türk_](README.tr-TR.md), +[_Русский_](README.ru-RU.md) *☝ Nótese que este proyecto está pensado con fines de aprendizaje e investigación, y **no** para ser usado en producción.* diff --git a/README.fr-FR.md b/README.fr-FR.md index f1c79d77..65595421 100644 --- a/README.fr-FR.md +++ b/README.fr-FR.md @@ -19,7 +19,8 @@ _Lisez ceci dans d'autres langues:_ [_Polski_](README.pl-PL.md), [_Español_](README.es-ES.md), [_Português_](README.pt-BR.md), -[_Türk_](README.tr-TR.md) +[_Türk_](README.tr-TR.md), +[_Русский_](README.ru-RU.md) ## Data Structures diff --git a/README.ja-JP.md b/README.ja-JP.md index d80e6bfb..f166cd2d 100644 --- a/README.ja-JP.md +++ b/README.ja-JP.md @@ -18,7 +18,8 @@ _Read this in other languages:_ [_Français_](README.fr-FR.md), [_Español_](README.es-ES.md), [_Português_](README.pt-BR.md), -[_Türk_](README.tr-TR.md) +[_Türk_](README.tr-TR.md), +[_Русский_](README.ru-RU.md) ## データ構造 diff --git a/README.ko-KR.md b/README.ko-KR.md index 2dccf75b..7759e33b 100644 --- a/README.ko-KR.md +++ b/README.ko-KR.md @@ -17,7 +17,8 @@ _Read this in other languages:_ [_Français_](README.fr-FR.md), [_Español_](README.es-ES.md), [_Português_](README.pt-BR.md), -[_Türk_](README.tr-TR.md) +[_Türk_](README.tr-TR.md), +[_Русский_](README.ru-RU.md) ## 자료 구조 diff --git a/README.md b/README.md index a8d1b9e7..f49f5784 100644 --- a/README.md +++ b/README.md @@ -19,10 +19,11 @@ _Read this in other languages:_ [_Français_](README.fr-FR.md), [_Español_](README.es-ES.md), [_Português_](README.pt-BR.md), -[_Türk_](README.tr-TR.md) +[_Türk_](README.tr-TR.md), +[_Русский_](README.ru-RU.md) *☝ Note that this project is meant to be used for learning and researching purposes -only and it is **not** meant to be used for production.* +only, and it is **not** meant to be used for production.* ## Data Structures diff --git a/README.pl-PL.md b/README.pl-PL.md index f2b76b1d..8d2faa4b 100644 --- a/README.pl-PL.md +++ b/README.pl-PL.md @@ -19,7 +19,8 @@ _Read this in other languages:_ [_Français_](README.fr-FR.md), [_Español_](README.es-ES.md), [_Português_](README.pt-BR.md), -[_Türk_](README.tr-TR.md) +[_Türk_](README.tr-TR.md), +[_Русский_](README.ru-RU.md) ## Struktury Danych diff --git a/README.pt-BR.md b/README.pt-BR.md index a1556c7f..74f77090 100644 --- a/README.pt-BR.md +++ b/README.pt-BR.md @@ -19,7 +19,8 @@ _Leia isto em outros idiomas:_ [_Polski_](README.pl-PL.md), [_Français_](README.fr-FR.md), [_Español_](README.es-ES.md), -[_Türk_](README.tr-TR.md) +[_Türk_](README.tr-TR.md), +[_Русский_](README.ru-RU.md) ## Estrutura de Dados diff --git a/README.ru-RU.md b/README.ru-RU.md index 5669731d..b52a5b42 100644 --- a/README.ru-RU.md +++ b/README.ru-RU.md @@ -1,14 +1,11 @@ -# Алгоритмы и структуры данных в JavaScript +# Алгоритмы и структуры данных на JavaScript [![Build Status](https://travis-ci.org/trekhleb/javascript-algorithms.svg?branch=master)](https://travis-ci.org/trekhleb/javascript-algorithms) [![codecov](https://codecov.io/gh/trekhleb/javascript-algorithms/branch/master/graph/badge.svg)](https://codecov.io/gh/trekhleb/javascript-algorithms) -В этом репозитории содержатся базовые JavaScript-примеры -многих популярных алгоритмов и структур данных. +В этом репозитории содержатся базовые JavaScript-примеры многих популярных алгоритмов и структур данных. -Для каждого алгоритма и структуры данных есть свой файл README -с соответствующими пояснениями и ссылками на материалы для дальнейшего -изучения (в том числе и ссылки на видеоролики в Ютубе). +Для каждого алгоритма и структуры данных есть свой файл README с соответствующими пояснениями и ссылками на материалы для дальнейшего изучения (в том числе и ссылки на видеоролики в YouTube). _Читать на других языках:_ [_English_](https://github.com/trekhleb/javascript-algorithms/), @@ -21,16 +18,13 @@ _Читать на других языках:_ [_Español_](README.es-ES.md), [_Português_](README.pt-BR.md) -*☝ Замечание: этот репозиторий предназначен только для -учебно-исследовательских целей (**не** для продакшена).* +*☝ Замечание: этот репозиторий предназначен для учебно-исследовательских целей (**не** для использования в продакшн-системах).* ## Структуры данных -Структура данных — определённый способ систематизации и хранения данных в компьютере таким образом, -чтобы они могли быть легко доступны и изменяемы. Структура данных — совокупность коллекции значений -данных, взаимосвязей между ними и функций или операций, которые могут применяться к данным. +Структура данных (англ. data structure) — программная единица, позволяющая хранить и обрабатывать множество однотипных и/или логически связанных данных в вычислительной технике. Для добавления, поиска, изменения и удаления данных структура данных предоставляет некоторый набор функций, составляющих её интерфейс. -`B` - Новичок, `A` - Продвинутый +`B` - Базовый уровень, `A` - Продвинутый уровень * `B` [Связный список](src/data-structures/linked-list) * `B` [Двунаправленный связный список](src/data-structures/doubly-linked-list) @@ -52,12 +46,11 @@ _Читать на других языках:_ ## Алгоритмы -Алгоритм — однозначная спецификация по решению целого ряда задач (иными словами, -это список правил, чётко определяющих ту или иную последовательность операций). +Алгоритм — конечная совокупность точно заданных правил решения некоторого класса задач или набор инструкций, описывающих порядок действий исполнителя для решения некоторой задачи. -`B` — Новичок, `A` — Продвинутый +`B` - Базовый уровень, `A` - Продвинутый уровень -### Тематическое разделение алгоритмов +### Алгоритмы по тематике * **Математика** * `B` [Битовые манипуляции](src/algorithms/math/bits) — получение/запись/сброс/обновление битов, умножение/деление на 2, сделать отрицательным и т.п. @@ -84,11 +77,11 @@ _Читать на других языках:_ * `A` [Сочетания](src/algorithms/sets/combinations) (с повторениями и без повторений) * `A` [Наибольшая общая подпоследовательность](src/algorithms/sets/longest-common-subsequence) * `A` [Наибольшая увеличивающаяся подпоследовательность](src/algorithms/sets/longest-increasing-subsequence) - * `A` [Наименьшая общая суперпоследовательность](src/algorithms/sets/shortest-common-supersequence) + * `A` [Наименьшая общая супер-последовательность](src/algorithms/sets/shortest-common-supersequence) * `A` [Задача о рюкзаке](src/algorithms/sets/knapsack-problem) — "0/1" и "неограниченный" рюкзаки - * `A` [Максимальный подмассив](src/algorithms/sets/maximum-subarray) — метод полного перебора и алгоритм Кадане + * `A` [Максимальный под-массив](src/algorithms/sets/maximum-subarray) — метод полного перебора и алгоритм Кадане * `A` [Комбинации сумм](src/algorithms/sets/combination-sum) — нахождение всех комбинаций, сумма каждой из которых равна заданному числу -* **Алгоритмы на строках** +* **Алгоритмы работы со строками** * `B` [Расстояние Хэмминга](src/algorithms/string/hamming-distance) — число позиций, в которых соответствующие символы различны * `A` [Расстояние Левенштейна](src/algorithms/string/levenshtein-distance) — метрика, измеряющая разность между двумя последовательностями * `A` [Алгоритм Кнута — Морриса — Пратта](src/algorithms/string/knuth-morris-pratt) — поиск подстроки (сопоставление с шаблоном) @@ -101,7 +94,7 @@ _Читать на других языках:_ * `B` [Поиск с перескоком](src/algorithms/search/jump-search) (поиск блоков) — поиск в упорядоченном массиве * `B` [Двоичный поиск](src/algorithms/search/binary-search) — поиск в упорядоченном массиве * `B` [Интерполяционный поиск](src/algorithms/search/interpolation-search) — поиск в равномерно распределённом упорядоченном массиве. -* **Сортировки** +* **Алгоритмы сортировки** * `B` [Сортировка пузырьком](src/algorithms/sorting/bubble-sort) * `B` [Сортировка выбором](src/algorithms/sorting/selection-sort) * `B` [Сортировка вставками](src/algorithms/sorting/insertion-sort) @@ -147,11 +140,9 @@ _Читать на других языках:_ * `A` [Задача об N ферзях](src/algorithms/uncategorized/n-queens) * `A` [Маршрут коня](src/algorithms/uncategorized/knight-tour) -### Парадигмы программирования +### Алгоритмы по парадигме программирования -Парадигма программирования — общий метод или подход, лежащий в основе целого класса алгоритмов. -Понятие "парадигма программирования" является более абстрактным по отношению к понятию "алгоритм", -которое в свою очередь является более абстрактным по отношению к понятию "компьютерная пограмма". +Парадигма программирования — общий метод или подход, лежащий в основе целого класса алгоритмов. Понятие "парадигма программирования" является более абстрактным по отношению к понятию "алгоритм", которое в свою очередь является более абстрактным по отношению к понятию "компьютерная программа". * **Алгоритмы полного перебора** — поиск лучшего решения исчерпыванием всевозможных вариантов * `B` [Линейный поиск](src/algorithms/search/linear-search) @@ -196,9 +187,7 @@ _Читать на других языках:_ * `A` [Алгоритм Беллмана — Форда](src/algorithms/graph/bellman-ford) — поиск кратчайшего пути во взвешенном графе * `A` [Алгоритм Флойда — Уоршелла](src/algorithms/graph/floyd-warshall) — нахождение кратчайших путей от одной из вершин графа до всех остальных * `A` [Разборщик регулярных выражений](src/algorithms/string/regular-expression-matching) -* **Поиск с возвратом (бэктрекинг)** — при поиске решения многократно делается попытка расширить текущее частичное решение. Если расширение -невозможно, то происходит возврат к предыдущему более короткому частичному решению, и делается попытка его расширить другим возможным способом. -Обычно используется обход пространства состояний в глубину. +* **Поиск с возвратом (бэктрекинг)** — при поиске решения многократно делается попытка расширить текущее частичное решение. Если расширение невозможно, то происходит возврат к предыдущему более короткому частичному решению, и делается попытка его расширить другим возможным способом. Обычно используется обход пространства состояний в глубину. * `B` [Прыжки](src/algorithms/uncategorized/jump-game) * `B` [Поиск уникальных путей](src/algorithms/uncategorized/unique-paths) * `B` [Булеан](src/algorithms/sets/power-set) — все подмножества заданного множества @@ -206,38 +195,38 @@ _Читать на других языках:_ * `A` [Задача об N ферзях](src/algorithms/uncategorized/n-queens) * `A` [Маршрут коня](src/algorithms/uncategorized/knight-tour) * `A` [Комбинации сумм](src/algorithms/sets/combination-sum) — нахождение всех комбинаций, сумма каждой из которых равна заданному числу -* **Метод ветвей и границ** — основан на упорядоченном переборе решений и рассмотрении только тех из них, которые являются перспективными -(по тем или иным признакам) и отбрасывании бесперспективных множеств решений. Обычно используется обход в ширину в совокупности с обходом -дерева пространства состояний в глубину. +* **Метод ветвей и границ** — основан на упорядоченном переборе решений и рассмотрении только тех из них, которые являются перспективными (по тем или иным признакам) и отбрасывании бесперспективных множеств решений. Обычно используется обход в ширину в совокупности с обходом дерева пространства состояний в глубину. -## Команды по использованию репозитория +## Как использовать этот репозиторий **Установка всех зависимостей** ``` npm install ``` -**Запустить ESLint** +**Запуск ESLint** -Возможно, эта команда потребуется Вам для проверки качества кода. +Эта команда может потребоваться вам для проверки качества кода. ``` npm run lint ``` -**Запустить все тесты** +**Запуск всех тестов** + ``` npm test ``` -**Запустить определённый тест** +**Запуск определённого теста** + ``` npm test -- 'LinkedList' ``` -**Playground** +**Песочница** -Вы можете поэкспериментировать с алгоритмами и структурами данных в файле `./src/playground/playground.js` +Вы можете экспериментировать с алгоритмами и структурами данных в файле `./src/playground/playground.js` (файл `./src/playground/__test__/playground.test.js` предназначен для написания тестов). Для проверки работоспособности вашего кода используйте команду: @@ -254,8 +243,7 @@ npm test -- 'playground' ### Нотация «О» большое -*Нотация «О» большое* используется для классификации алгоритмов в соответствии с ростом времени выполнения и затрачиваемой памяти при увеличении размера входных данных. -На диаграмме ниже представлены общие порядки роста алгоритмов в соответствии с нотацией «О» большое. +*Нотация «О» большое* используется для классификации алгоритмов в соответствии с ростом времени выполнения и затрачиваемой памяти при увеличении размера входных данных. На диаграмме ниже представлены общие порядки роста алгоритмов в соответствии с нотацией «О» большое. ![Big O graphs](./assets/big-o-graph.png) @@ -286,7 +274,7 @@ npm test -- 'playground' | **B-дерево** | log(n) | log(n) | log(n) | log(n) | | | **Красно-чёрное дерево** | log(n) | log(n) | log(n) | log(n) | | | **АВЛ-дерево** | log(n) | log(n) | log(n) | log(n) | | -| **Фильтр Блума** | - | 1 | 1 | - | Возможно получение ложноположительного срабатывания | +| **Фильтр Блума** | - | 1 | 1 | - | Возможно получение ложно-положительного срабатывания | ### Сложности алгоритмов сортировки diff --git a/README.tr-TR.md b/README.tr-TR.md index c0fc6ee1..0892e5f4 100644 --- a/README.tr-TR.md +++ b/README.tr-TR.md @@ -17,7 +17,8 @@ _Read this in other languages:_ [_Polski_](README.pl-PL.md), [_Français_](README.fr-FR.md), [_Español_](README.es-ES.md), -[_Português_](README.pt-BR.md) +[_Português_](README.pt-BR.md), +[_Русский_](README.ru-RU.md) *☝ Not, bu proje araştırma ve öğrenme amacı ile yapılmış olup üretim için **yaplılmamıştır**.* diff --git a/README.zh-CN.md b/README.zh-CN.md index cd95bc5c..e4f37ec5 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -16,7 +16,8 @@ _Read this in other languages:_ [_Français_](README.fr-FR.md), [_Español_](README.es-ES.md), [_Português_](README.pt-BR.md), -[_Türk_](README.tr-TR.md) +[_Türk_](README.tr-TR.md), +[_Русский_](README.ru-RU.md) *注意:这个项目仅用于学习和研究,**不是**用于生产环境。* diff --git a/README.zh-TW.md b/README.zh-TW.md index 9d7bcb63..8e5699cf 100644 --- a/README.zh-TW.md +++ b/README.zh-TW.md @@ -15,7 +15,8 @@ _Read this in other languages:_ [_Français_](README.fr-FR.md), [_Español_](README.es-ES.md), [_Português_](README.pt-BR.md), -[_Türk_](README.tr-TR.md) +[_Türk_](README.tr-TR.md), +[_Русский_](README.ru-RU.md) ## 資料結構