Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f4668db

Browse files
Merge branch 'master' into master
2 parents d4af68b + d9946c1 commit f4668db

File tree

119 files changed

+5256
-3950
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+5256
-3950
lines changed

‎.travis.yml‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ dist: trusty
33
language: node_js
44
node_js:
55
- node
6+
install:
7+
- npm install -g codecov
8+
- npm install
69
script:
710
- npm run ci
8-
- npm run codecov
11+
- codecov
912
notifications:
1013
email: false

‎CONTRIBUTING.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
**Contributing New Translation**
1010

1111
- Create new `README.xx-XX.md` file with translation alongside with
12-
main `README.md` file where `xx-XX` is locale and country/region codes.
12+
main `README.md` file where `xx-XX` is [locale and country/region codes](http://www.lingoes.net/en/translator/langcode.htm).
1313
For example `en-US`, `zh-CN`, `zh-TW`, `ko-KR` etc.
1414
- You may also translate all other sub-folders by creating
1515
related `README.xx-XX.md` files in each of them.

‎README.es-ES.md‎

Lines changed: 153 additions & 143 deletions
Large diffs are not rendered by default.

‎README.fr-FR.md‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,11 @@ _Lisez ceci dans d'autres langues:_
1515
[_简体中文_](README.zh-CN.md),
1616
[_繁體中文_](README.zh-TW.md),
1717
[_한국어_](README.ko-KR.md),
18+
[_日本語_](README.ja-JP.md),
1819
[_Polski_](README.pl-PL.md),
1920
[_Español_](README.es-ES.md),
2021
[_Português_](README.pt-BR.md)
2122

22-
> Nous écrivons actuellement un livre qui expliquera clairement, en détail, les
23-
principaux algorithmes. Si vous souhaitez être notifié lorsque le livre
24-
"JavaScript Algorithms" paraîtra, [cliquez ici](https://upscri.be/402324/).
25-
2623
## Data Structures
2724

2825
Une structure de données est une manière spéciale d'organiser et de stocker

‎README.ja-JP.md‎

Lines changed: 291 additions & 0 deletions
Large diffs are not rendered by default.

‎README.ko-KR.md‎

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,12 @@ _Read this in other languages:_
1212
[_English_](https://github.com/trekhleb/javascript-algorithms/),
1313
[_简体中文_](README.zh-CN.md),
1414
[_繁體中文_](README.zh-TW.md),
15+
[_日本語_](README.ja-JP.md),
1516
[_Polski_](README.pl-PL.md),
1617
[_Français_](README.fr-FR.md),
1718
[_Español_](README.es-ES.md),
1819
[_Português_](README.pt-BR.md)
1920

20-
> 우리는 주요 알고리즘에 대해 더 자세한 설명을 담은 책을 제작 중입니다.
21-
만약 "JavaScript Algorithms" 책이 언제 출시되는지 알고 싶다면
22-
, [여기를 클릭하세요.](https://upscri.be/402324/).
23-
2421
## 자료 구조
2522

2623
자료 구조는 데이터를 특정 방식으로 구성하고 저장함으로써 더 효율적으로
@@ -134,9 +131,7 @@ _Read this in other languages:_
134131

135132
### 패러다임별 알고리즘
136133

137-
알고리즘의 패러다임은 어떤 종류의 알고리즘을 설계할 때 기초가 되는 일반적인 방법 혹은 접근법입니다.
138-
알고리즘이 컴퓨터의 프로그램 보다 더 추상적인 것처럼 알고리즘의 패러다임은 어떤 알고리즘의
139-
개념보다 추상적인 것입니다.
134+
알고리즘 패러다임 이란, 알고리즘이 주어진 문제를 해결하기 위해 채택한 기초가 되는 일반적인 방법 혹은 접근법입니다. 알고리즘이 해결하는 문제나 알고리즘의 동작 방식이 완전히 다르더라도,알고리즘의 동작 원칙이 같으면 같은 패러다음을 사용했다고 말할 수 있으며, 주로 알고리즘을 구분하는 기준으로 쓰인다. 알고리즘이 일반적인 컴퓨터의 프로그램에 대한 개념보다 보다 더 추상적인 개념인 것처럼 알고리즘의 패러다임은 명확히 정의된 수학적 실체가 있는 것이 아니기 때문에 그 어떤 알고리즘의 개념보다도 훨씬 추상적인 개념이다.
140135

141136
* **브루트 포스(Brute Force)** - 가능한 모든 경우를 탐색한 뒤 최적을 찾아내는 방식입니다.
142137
* `B` [선형 탐색](src/algorithms/search/linear-search)
@@ -184,11 +179,11 @@ _Read this in other languages:_
184179
* `A` [N-Queens 문제](src/algorithms/uncategorized/n-queens)
185180
* `A` [기사의 여행](src/algorithms/uncategorized/knight-tour)
186181
* `A` [조합 합](src/algorithms/sets/combination-sum) - 특정 합을 구성하는 모든 조합 찾기
187-
* **분기 한정법** - 백트래킹으로 찾은 각 단계의 최소 비용 해결법을 기억해 두고 있다가, 이 비용을 이용해서 더 낮은 최소 비용을 찾습니다. 기억해둔 최소 비용을 이용해 더 높은 비용이 드는 해결법은 더이상 탐색하지 않습니다. 보통 상태 정보를 사진 DFS 이용한 BFS 방식에서 사용됩니다.
182+
* **분기 한정법** - 백트래킹으로 찾은 각 단계의 최소 비용이 드는 해를 기억해 두고 있다가, 이 비용을 이용해서 더 낮은 최적의 해를 찾습니다. 기억해둔 최소 비용들을 이용해 더 높은 비용이 드는 해결법을 탐색 안함으로써 불필요한 시간 소모를 줄입니다. 보통 상태 공간 트리의 DFS 탐색을 이용한 BFS 탐색 방식에서 사용됩니다.
188183

189184
## 이 저장소의 사용법
190185

191-
**모든 의존성 설치**
186+
**모든 종속 모듈들 설치**
192187
```
193188
npm install
194189
```

‎README.md‎

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ _Read this in other languages:_
1414
[_简体中文_](README.zh-CN.md),
1515
[_繁體中文_](README.zh-TW.md),
1616
[_한국어_](README.ko-KR.md),
17+
[_日本語_](README.ja-JP.md),
1718
[_Polski_](README.pl-PL.md),
1819
[_Français_](README.fr-FR.md),
1920
[_Español_](README.es-ES.md),
2021
[_Português_](README.pt-BR.md)
2122

22-
> We’re writing a book that will clearly explain, in detail, the main algorithms.
23-
If you’d like to be notified when the "JavaScript Algorithms" book
24-
launches, [click here](https://upscri.be/402324/).
23+
*☝ Note that this project is meant to be used for learning and researching purposes
24+
only and it is **not** meant to be used for production.*
2525

2626
## Data Structures
2727

@@ -37,7 +37,7 @@ the data.
3737
* `B` [Queue](src/data-structures/queue)
3838
* `B` [Stack](src/data-structures/stack)
3939
* `B` [Hash Table](src/data-structures/hash-table)
40-
* `B` [Heap](src/data-structures/heap)
40+
* `B` [Heap](src/data-structures/heap) - max and min heap versions
4141
* `B` [Priority Queue](src/data-structures/priority-queue)
4242
* `A` [Trie](src/data-structures/trie)
4343
* `A` [Tree](src/data-structures/tree)
@@ -62,7 +62,7 @@ a set of rules that precisely define a sequence of operations.
6262
* **Math**
6363
* `B` [Bit Manipulation](src/algorithms/math/bits) - set/get/update/clear bits, multiplication/division by two, make negative etc.
6464
* `B` [Factorial](src/algorithms/math/factorial)
65-
* `B` [Fibonacci Number](src/algorithms/math/fibonacci)
65+
* `B` [Fibonacci Number](src/algorithms/math/fibonacci) - classic and closed-form versions
6666
* `B` [Primality Test](src/algorithms/math/primality-test) (trial division method)
6767
* `B` [Euclidean Algorithm](src/algorithms/math/euclidean-algorithm) - calculate the Greatest Common Divisor (GCD)
6868
* `B` [Least Common Multiple](src/algorithms/math/least-common-multiple) (LCM)
@@ -71,13 +71,14 @@ a set of rules that precisely define a sequence of operations.
7171
* `B` [Pascal's Triangle](src/algorithms/math/pascal-triangle)
7272
* `B` [Complex Number](src/algorithms/math/complex-number) - complex numbers and basic operations with them
7373
* `B` [Radian & Degree](src/algorithms/math/radian) - radians to degree and backwards conversion
74+
* `B` [Fast Powering](src/algorithms/math/fast-powering)
7475
* `A` [Integer Partition](src/algorithms/math/integer-partition)
7576
* `A` [Liu Hui π Algorithm](src/algorithms/math/liu-hui) - approximate π calculations based on N-gons
76-
* `A` [Fourier Transform (DFT, FFT)](src/algorithms/math/fourier-transform) - decompose a function of time (a signal) into the frequencies that make it up
77+
* `A` [Discrete Fourier Transform](src/algorithms/math/fourier-transform) - decompose a function of time (a signal) into the frequencies that make it up
7778
* **Sets**
7879
* `B` [Cartesian Product](src/algorithms/sets/cartesian-product) - product of multiple sets
7980
* `B` [Fisher–Yates Shuffle](src/algorithms/sets/fisher-yates) - random permutation of a finite sequence
80-
* `A` [Power Set](src/algorithms/sets/power-set) - all subsets of a set
81+
* `A` [Power Set](src/algorithms/sets/power-set) - all subsets of a set (bitwise and backtracking solutions)
8182
* `A` [Permutations](src/algorithms/sets/permutations) (with and without repetitions)
8283
* `A` [Combinations](src/algorithms/sets/combinations) (with and without repetitions)
8384
* `A` [Longest Common Subsequence](src/algorithms/sets/longest-common-subsequence) (LCS)
@@ -109,6 +110,9 @@ a set of rules that precisely define a sequence of operations.
109110
* `B` [Shellsort](src/algorithms/sorting/shell-sort)
110111
* `B` [Counting Sort](src/algorithms/sorting/counting-sort)
111112
* `B` [Radix Sort](src/algorithms/sorting/radix-sort)
113+
* **Linked Lists**
114+
* `B` [Straight Traversal](src/algorithms/linked-list/traversal)
115+
* `B` [Reverse Traversal](src/algorithms/linked-list/reverse-traversal)
112116
* **Trees**
113117
* `B` [Depth-First Search](src/algorithms/tree/depth-first-search) (DFS)
114118
* `B` [Breadth-First Search](src/algorithms/tree/breadth-first-search) (BFS)
@@ -136,6 +140,7 @@ a set of rules that precisely define a sequence of operations.
136140
* `B` [Jump Game](src/algorithms/uncategorized/jump-game) - backtracking, dynamic programming (top-down + bottom-up) and greedy examples
137141
* `B` [Unique Paths](src/algorithms/uncategorized/unique-paths) - backtracking, dynamic programming and Pascal's Triangle based examples
138142
* `B` [Rain Terraces](src/algorithms/uncategorized/rain-terraces) - trapping rain water problem (dynamic programming and brute force versions)
143+
* `B` [Recursive Staircase](src/algorithms/uncategorized/recursive-staircase) - count the number of ways to reach to the top (4 solutions)
139144
* `A` [N-Queens Problem](src/algorithms/uncategorized/n-queens)
140145
* `A` [Knight's Tour](src/algorithms/uncategorized/knight-tour)
141146

@@ -148,6 +153,7 @@ algorithm is an abstraction higher than a computer program.
148153
* **Brute Force** - look at all the possibilities and selects the best solution
149154
* `B` [Linear Search](src/algorithms/search/linear-search)
150155
* `B` [Rain Terraces](src/algorithms/uncategorized/rain-terraces) - trapping rain water problem
156+
* `B` [Recursive Staircase](src/algorithms/uncategorized/recursive-staircase) - count the number of ways to reach to the top
151157
* `A` [Maximum Subarray](src/algorithms/sets/maximum-subarray)
152158
* `A` [Travelling Salesman Problem](src/algorithms/graph/travelling-salesman) - shortest possible route that visits each city and returns to the origin city
153159
* `A` [Discrete Fourier Transform](src/algorithms/math/fourier-transform) - decompose a function of time (a signal) into the frequencies that make it up
@@ -167,13 +173,15 @@ algorithm is an abstraction higher than a computer program.
167173
* `B` [Tree Depth-First Search](src/algorithms/tree/depth-first-search) (DFS)
168174
* `B` [Graph Depth-First Search](src/algorithms/graph/depth-first-search) (DFS)
169175
* `B` [Jump Game](src/algorithms/uncategorized/jump-game)
176+
* `B` [Fast Powering](src/algorithms/math/fast-powering)
170177
* `A` [Permutations](src/algorithms/sets/permutations) (with and without repetitions)
171178
* `A` [Combinations](src/algorithms/sets/combinations) (with and without repetitions)
172179
* **Dynamic Programming** - build up a solution using previously found sub-solutions
173180
* `B` [Fibonacci Number](src/algorithms/math/fibonacci)
174181
* `B` [Jump Game](src/algorithms/uncategorized/jump-game)
175182
* `B` [Unique Paths](src/algorithms/uncategorized/unique-paths)
176183
* `B` [Rain Terraces](src/algorithms/uncategorized/rain-terraces) - trapping rain water problem
184+
* `B` [Recursive Staircase](src/algorithms/uncategorized/recursive-staircase) - count the number of ways to reach to the top
177185
* `A` [Levenshtein Distance](src/algorithms/string/levenshtein-distance) - minimum edit distance between two sequences
178186
* `A` [Longest Common Subsequence](src/algorithms/sets/longest-common-subsequence) (LCS)
179187
* `A` [Longest Common Substring](src/algorithms/string/longest-common-substring)
@@ -190,6 +198,7 @@ if it satisfies all conditions, and only then continue generating subsequent sol
190198
different path of finding a solution. Normally the DFS traversal of state-space is being used.
191199
* `B` [Jump Game](src/algorithms/uncategorized/jump-game)
192200
* `B` [Unique Paths](src/algorithms/uncategorized/unique-paths)
201+
* `B` [Power Set](src/algorithms/sets/power-set) - all subsets of a set
193202
* `A` [Hamiltonian Cycle](src/algorithms/graph/hamiltonian-cycle) - Visit every vertex exactly once
194203
* `A` [N-Queens Problem](src/algorithms/uncategorized/n-queens)
195204
* `A` [Knight's Tour](src/algorithms/uncategorized/knight-tour)
@@ -244,7 +253,8 @@ npm test -- 'playground'
244253

245254
### Big O Notation
246255

247-
Order of growth of algorithms specified in Big O notation.
256+
*Big O notation* is used to classify algorithms according to how their running time or space requirements grow as the input size grows.
257+
On the chart below you may find most common orders of growth of algorithms specified in Big O notation.
248258

249259
![Big O graphs](./assets/big-o-graph.png)
250260

‎README.pl-PL.md‎

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,11 @@ _Read this in other languages:_
1515
[_简体中文_](README.zh-CN.md),
1616
[_繁體中文_](README.zh-TW.md),
1717
[_한국어_](README.ko-KR.md),
18+
[_日本語_](README.ja-JP.md),
1819
[_Français_](README.fr-FR.md),
1920
[_Español_](README.es-ES.md),
2021
[_Português_](README.pt-BR.md)
2122

22-
> Jesteśmy w trakcie pisania książki, która w jasny i specyficzny sposób,
23-
wyjaśni główne algorytmy. Jeżeli chcesz dostać powiadomienie o tym kiedy
24-
książka “JavaScript Algorithms†zostanie wydana,[kliknij tutaj](https://upscri.be/402324/).
25-
26-
2723
## Struktury Danych
2824

2925
Struktura danych to sposób uporządkowania i przechowywania informacji w

‎README.pt-BR.md‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,11 @@ _Leia isto em outros idiomas:_
1515
[_简体中文_](README.zh-CN.md),
1616
[_繁體中文_](README.zh-TW.md),
1717
[_한국어_](README.ko-KR.md),
18+
[_日本語_](README.ja-JP.md),
1819
[_Polski_](README.pl-PL.md),
1920
[_Français_](README.fr-FR.md),
2021
[_Español_](README.es-ES.md)
2122

22-
> Nós estamos escrevendo um livro que explicará claramente, em datalhes, os principais algoritmos.
23-
Se você deseja ser notificado quando o livro "Algoritmos em JavaScript"
24-
for lançado, [clique aqui](https://upscri.be/402324/).
25-
2623
## Data Structures
2724

2825
Uma estrutura de dados é uma maneira particular de organizar e armazenar dados em um computador para que ele possa

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /