diff --git a/README.ko-KR.md b/README.ko-KR.md
index 964790da..fd5c48ff 100644
--- a/README.ko-KR.md
+++ b/README.ko-KR.md
@@ -10,8 +10,9 @@
_Read this in other languages:_
[_English_](https://github.com/trekhleb/javascript-algorithms/),
-[简体中文](README.zh-CN.md),
-[繁體中文](README.zh-TW.md)
+[_简体中文_](README.zh-CN.md),
+[_繁體中文_](README.zh-TW.md),
+[_Polski_](README.pl-PL.md)
> 우리는 주요 알고리즘에 대해 더 자세한 설명을 담은 책을 제작 중입니다.
만약 “JavaScript Algorithms” 책이 언제 출시되는지 알고 싶다면
@@ -242,29 +243,29 @@ Source: [Big O Cheat Sheet](http://bigocheatsheet.com/).
### 자료 구조 작업별 복잡도
-| 자료 구조 | 접근 | 검색 | 삽입 | 삭제 | 비고 |
-| ----------------------- | :-------: | :-------: | :-------: | :-------: | :-------- |
-| **배열** | 1 | n | n | n | |
-| **스택** | n | n | 1 | 1 | |
-| **큐** | n | n | 1 | 1 | |
-| **연결 리스트** | n | n | 1 | 1 | |
-| **해시 테이블** | - | n | n | n | 완벽한 해시 함수의 경우 O(1) |
-| **이진 탐색 트리** | n | n | n | n | 균형 트리의 경우 O(log(n)) |
-| **B-트리** | log(n) | log(n) | log(n) | log(n) | |
-| **Red-Black 트리** | log(n) | log(n) | log(n) | log(n) | |
-| **AVL 트리** | log(n) | log(n) | log(n) | log(n) | |
-| **Bloom Filter** | - | 1 | 1 | - | 거짓 양성이 탐색 중 발생 가능 |
+| 자료 구조 | 접근 | 검색 | 삽입 | 삭제 | 비고 |
+| ------------------------ | :-------: | :-------: | :-------: | :-------: | :-------- |
+| **배열** | 1 | n | n | n | |
+| **스택** | n | n | 1 | 1 | |
+| **큐** | n | n | 1 | 1 | |
+| **연결 리스트** | n | n | 1 | 1 | |
+| **해시 테이블** | - | n | n | n | 완벽한 해시 함수의 경우 O(1) |
+| **이진 탐색 트리** | n | n | n | n | 균형 트리의 경우 O(log(n)) |
+| **B-트리** | log(n) | log(n) | log(n) | log(n) | |
+| **Red-Black 트리** | log(n) | log(n) | log(n) | log(n) | |
+| **AVL 트리** | log(n) | log(n) | log(n) | log(n) | |
+| **Bloom Filter** | - | 1 | 1 | - | 거짓 양성이 탐색 중 발생 가능 |
### 정렬 알고리즘 복잡도
-| 이름 | 최적 | 평균 | 최악 | 메모리 | 동일값 순서유지 | 비고 |
+| 이름 | 최적 | 평균 | 최악 | 메모리 | 동일값 순서유지 | 비고 |
| --------------------- | :-------------: | :-----------------: | :-----------------: | :-------: | :-------: | :-------- |
-| **거품 정렬** | n | n2 | n2 | 1 | Yes | |
-| **삽입 정렬** | n | n2 | n2 | 1 | Yes | |
-| **선택 정렬** | n2 | n2 | n2 | 1 | No | |
-| **힙 정렬** | n log(n) | n log(n) | n log(n) | 1 | No | |
-| **병합 정렬** | n log(n) | n log(n) | n log(n) | n | Yes | |
-| **퀵 정렬** | n log(n) | n log(n) | n2 | log(n) | No | 퀵 정렬은 보통 제자리(in-place)로 O(log(n)) 스택공간으로 수행됩니다. |
-| **셸 정렬** | n log(n) | 간격 순서에 영향을 받습니다. | n (log(n))2 | 1 | No | |
-| **계수 정렬** | n + r | n + r | n + r | n + r | Yes | r - 배열내 가장 큰 수 |
-| **기수 정렬** | n * k | n * k | n * k | n + k | Yes | k - 키값의 최대 길이 |
+| **거품 정렬** | n | n2 | n2 | 1 | Yes | |
+| **삽입 정렬** | n | n2 | n2 | 1 | Yes | |
+| **선택 정렬** | n2 | n2 | n2 | 1 | No | |
+| **힙 정렬** | n log(n) | n log(n) | n log(n) | 1 | No | |
+| **병합 정렬** | n log(n) | n log(n) | n log(n) | n | Yes | |
+| **퀵 정렬** | n log(n) | n log(n) | n2 | log(n) | No | 퀵 정렬은 보통 제자리(in-place)로 O(log(n)) 스택공간으로 수행됩니다. |
+| **셸 정렬** | n log(n) | 간격 순서에 영향을 받습니다. | n (log(n))2 | 1 | No | |
+| **계수 정렬** | n + r | n + r | n + r | n + r | Yes | r - 배열내 가장 큰 수 |
+| **기수 정렬** | n * k | n * k | n * k | n + k | Yes | k - 키값의 최대 길이 |
diff --git a/README.md b/README.md
index ad97decc..591f5148 100644
--- a/README.md
+++ b/README.md
@@ -11,10 +11,10 @@ with related explanations and links for further reading (including ones
to YouTube videos).
_Read this in other languages:_
-[简体中文](README.zh-CN.md),
-[繁體中文](README.zh-TW.md),
-[한국어](README.ko-KR.md),
-[Polish](README.pl-PL.md)
+[_简体中文_](README.zh-CN.md),
+[_繁體中文_](README.zh-TW.md),
+[_한국어_](README.ko-KR.md),
+[_Polski_](README.pl-PL.md)
> We’re writing a book that will clearly explain, in detail, the main algorithms.
If you’d like to be notified when the “JavaScript Algorithms” book
diff --git a/README.pl-PL.md b/README.pl-PL.md
index b027394f..3694dba1 100644
--- a/README.pl-PL.md
+++ b/README.pl-PL.md
@@ -7,20 +7,26 @@ To repozytorium zawiera wiele przykładów JavaScript opartych na
znanych algorytmach i strukturach danych.
Każdy algorytm i struktura danych zawiera osobny plik README
-wraz z powiązanymi wyjaśnieniami i odnośnikami do dalszego czytania (włącznie z tymi do YouTube videos).
+wraz z powiązanymi wyjaśnieniami i odnośnikami do dalszego czytania
+(włącznie z tymi do YouTube videos).
_Read this in other languages:_
[_English_](https://github.com/trekhleb/javascript-algorithms/)
-[简体ä¸æ–‡](README.zh-CN.md),
-[ç¹é«”ä¸æ–‡](README.zh-TW.md),
-[í•œêµì–´](README.ko-KR.md)
+[_简体中文_](README.zh-CN.md),
+[_繁體中文_](README.zh-TW.md),
+[_한국어_](README.ko-KR.md)
-> Jesteśmy w trakcie pisania książki, która w jasny i specyficzny sposób, wyjaśni główne algorytmy. Jeżeli chcesz dostać powiadomienie o tym kiedy książka “JavaScript Algorithms†zostanie wydana,[kliknij tutaj](https://upscri.be/402324/).
+> Jesteśmy w trakcie pisania książki, która w jasny i specyficzny sposób,
+wyjaśni główne algorytmy. Jeżeli chcesz dostać powiadomienie o tym kiedy
+książka “JavaScript Algorithms†zostanie wydana,[kliknij tutaj](https://upscri.be/402324/).
## Struktury Danych
-Struktura danych to sposób uporządkowania i przechowywania informacji w komputerze żeby mogłaby być sprawnie dostępna i efektywnie zmodyfikowana. Dokładniej, struktura danych jest zbiorem wartości danych, relacjami pomiędzy nimi, zadaniami lub działaniami, które mogą dotyczyć danych.
+Struktura danych to sposób uporządkowania i przechowywania informacji w
+komputerze żeby mogłaby być sprawnie dostępna i efektywnie zmodyfikowana.
+Dokładniej, struktura danych jest zbiorem wartości danych, relacjami
+pomiędzy nimi, zadaniami lub działaniami, które mogą dotyczyć danych.
`B` - Początkujący, `A` - Zaawansowany
@@ -44,7 +50,9 @@ Struktura danych to sposób uporządkowania i przechowywania informacji w komput
## Algorytmy
-Algorytm jest to skończony ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego rodzaju zadań. Sposób postępowania prowadzący do rozwiązania problemu.
+Algorytm jest to skończony ciąg jasno zdefiniowanych czynności, koniecznych
+do wykonania pewnego rodzaju zadań. Sposób postępowania prowadzący do
+rozwiązania problemu.
`B` - Początkujący, `A` - Zaawansowany
@@ -127,7 +135,10 @@ znajdź wszystkie kombinacje, które tworzą określoną sumę
### Algorytmy według paradygmatu
-Paradygmat algorytmiczny jest ogólną metodą lub podejściem, które jest podstawą projektowania klasy algorytmów. Jest abstrakcją wyższą niż pojęcie algorytmu, podobnie jak algorytm jest abstrakcją wyższą niż program komputerowy.
+Paradygmat algorytmiczny jest ogólną metodą lub podejściem, które jest
+podstawą projektowania klasy algorytmów. Jest abstrakcją wyższą niż
+pojęcie algorytmu, podobnie jak algorytm jest abstrakcją wyższą niż
+program komputerowy.
* **Metoda Siłowa** - Sprawdza wszystkie możliwosci i wybiera najlepsze rozwiązanie.
* `B` [Wyszukiwanie Liniowe](src/algorithms/search/linear-search)
@@ -246,29 +257,29 @@ Poniżej umieszczamy listę najbardziej używanych Big O notacji i ich porównan
### Złożoność operacji struktury danych
-| Struktura Danych | Dostęp | Szukaj | Umieszczanie | Usuwanie | Komentarze |
-| ----------------------- | :-------: | :-------: | :-------: | :-------: | :-------- |
-| **Szereg** | 1 | n | n | n | |
-| **Sterta** | n | n | 1 | 1 | |
-| **Kolejka** | n | n | 1 | 1 | |
-| **Lista Powiązana** | n | n | 1 | 1 | |
-| **Tablica funkcji mieszanej** | - | n | n | n | W wypadku idealnej funkcji skrótu koszt mógłby sie równać O(1) |
-| **Binarne Drzewo Poszukiwań** | n | n | n | n | W przypadku zrównoważonych kosztów drzew byłoby O(log(n)) |
-| **B-Drzewo** | log(n) | log(n) | log(n) | log(n) | |
+| Struktura Danych | Dostęp | Szukaj | Umieszczanie | Usuwanie | Komentarze |
+| ------------------------------- | :-------: | :-------: | :-------: | :-------: | :-------- |
+| **Szereg** | 1 | n | n | n | |
+| **Sterta** | n | n | 1 | 1 | |
+| **Kolejka** | n | n | 1 | 1 | |
+| **Lista Powiązana** | n | n | 1 | 1 | |
+| **Tablica funkcji mieszanej** | - | n | n | n | W wypadku idealnej funkcji skrótu koszt mógłby sie równać O(1) |
+| **Binarne Drzewo Poszukiwań** | n | n | n | n | W przypadku zrównoważonych kosztów drzew byłoby O(log(n)) |
+| **B-Drzewo** | log(n) | log(n) | log(n) | log(n) | |
| **Drzewa czerwono-czarne** | log(n) | log(n) | log(n) | log(n) | |
-| **AVL Drzewo** | log(n) | log(n) | log(n) | log(n) | |
-| **Filtr Blooma ** | - | 1 | 1 | - | Fałszywe dotatnie są możliwe podczas wyszukiwania |
+| **AVL Drzewo** | log(n) | log(n) | log(n) | log(n) | |
+| **Filtr Blooma** | - | 1 | 1 | - | Fałszywe dotatnie są możliwe podczas wyszukiwania |
### Sortowanie Tablic Złożoności Algorytmów
-| Nazwa | Najlepszy | Średni | Najgorszy | Pamięć | Stabilność | Komentarze |
-| --------------------- | :-------------: | :-----------------: | :-----------------: | :-------: | :-------: | :-------- |
-| **Sortowanie bąbelkowe** | n | n2 | n2 | 1 | Yes | |
-| **Sortowanie przez wstawianie** | n | n2 | n2 | 1 | Yes | |
-| **Sortowanie przez wybieranie** | n2 | n2 | n2 | 1 | No | |
-| **Sortowanie przez kopcowanie** | n log(n) | n log(n) | n log(n) | 1 | No | |
-| **Sortowanie przez scalanie** | n log(n) | n log(n) | n log(n) | n | Yes | |
-| **Szybkie sortowanie** | n log(n) | n log(n) | n2 | log(n) | No | Szybkie sortowanie jest zazwyczaj robione w miejsce O(log(n)) stosu przestrzeni |
-| **Sortowanie Shella** | n log(n) | zależy od luki w układzie | n (log(n))2 | 1 | No | |
-| **Sortowanie przez zliczanie** | n + r | n + r | n + r | n + r | Yes | r - największy numer w tablicy|
-| **Sortowanie Radix** | n * k | n * k | n * k | n + k | Yes | k -długość najdłuższego klucza |
+| Nazwa | Najlepszy | Średni | Najgorszy | Pamięć | Stabilność | Komentarze |
+| ----------------------------------- | :-------------: | :-----------------: | :-----------------: | :-------: | :-------: | :-------- |
+| **Sortowanie bąbelkowe** | n | n2 | n2 | 1 | Yes | |
+| **Sortowanie przez wstawianie** | n | n2 | n2 | 1 | Yes | |
+| **Sortowanie przez wybieranie** | n2 | n2 | n2 | 1 | No | |
+| **Sortowanie przez kopcowanie** | n log(n) | n log(n) | n log(n) | 1 | No | |
+| **Sortowanie przez scalanie** | n log(n) | n log(n) | n log(n) | n | Yes | |
+| **Szybkie sortowanie** | n log(n) | n log(n) | n2 | log(n) | No | Szybkie sortowanie jest zazwyczaj robione w miejsce O(log(n)) stosu przestrzeni |
+| **Sortowanie Shella** | n log(n) | zależy od luki w układzie | n (log(n))2 | 1 | No | |
+| **Sortowanie przez zliczanie** | n + r | n + r | n + r | n + r | Yes | r - największy numer w tablicy|
+| **Sortowanie Radix** | n * k | n * k | n * k | n + k | Yes | k -długość najdłuższego klucza |
diff --git a/README.zh-CN.md b/README.zh-CN.md
index 42b89866..4ea45f4d 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -9,8 +9,9 @@
_Read this in other languages:_
[_English_](https://github.com/trekhleb/javascript-algorithms/),
-[繁體中文](README.zh-TW.md),
-[한국어](README.ko-KR.md)
+[_繁體中文_](README.zh-TW.md),
+[_한국어_](README.ko-KR.md),
+[_Polski_](README.pl-PL.md)
> We’re writing a book that will clearly explain, in detail, the main algorithms.
If you’d like to be notified when the “JavaScript Algorithms” book
@@ -195,26 +196,26 @@ npm test -- 'playground'
### 数据结构操作的复杂性
-| 数据结构 | 连接 | 查找 | 插入 | 删除 |
-| ----------------------- | :-------: | :-------: | :-------: | :-------: |
+| 数据结构 | 连接 | 查找 | 插入 | 删除 |
+| ---------------------- | :-------: | :-------: | :-------: | :-------: |
| **数组** | 1 | n | n | n |
-| **栈** | n | n | 1 | 1 |
+| **栈** | n | n | 1 | 1 |
| **队列** | n | n | 1 | 1 |
-| **链表** | n | n | 1 | 1 |
-| **哈希表** | - | n | n | n |
-| **二分查找树** | n | n | n | n |
-| **B树** | log(n) | log(n) | log(n) | log(n) |
-| **红黑树** | log(n) | log(n) | log(n) | log(n) |
-| **AVL树** | log(n) | log(n) | log(n) | log(n) |
+| **链表** | n | n | 1 | 1 |
+| **哈希表** | - | n | n | n |
+| **二分查找树** | n | n | n | n |
+| **B树** | log(n) | log(n) | log(n) | log(n) |
+| **红黑树** | log(n) | log(n) | log(n) | log(n) |
+| **AVL树** | log(n) | log(n) | log(n) | log(n) |
### 数组排序算法的复杂性
| 名称 | 最优 | 平均 | 最坏 | 内存 | 稳定 |
| --------------------- | :-------: | :-------: | :-----------: | :-------: | :-------: |
-| **冒泡排序** | n | n^2 | n^2 | 1 | Yes |
-| **插入排序** | n | n^2 | n^2 | 1 | Yes |
-| **选择排序** | n^2 | n^2 | n^2 | 1 | No |
-| **堆排序** | n log(n) | n log(n) | n log(n) | 1 | No |
-| **归并排序** | n log(n) | n log(n) | n log(n) | n | Yes |
-| **快速排序** | n log(n) | n log(n) | n^2 | log(n) | No |
-| **希尔排序** | n log(n) | 取决于差距序列 | n (log(n))^2 | 1 | No |
+| **冒泡排序** | n | n^2 | n^2 | 1 | Yes |
+| **插入排序** | n | n^2 | n^2 | 1 | Yes |
+| **选择排序** | n^2 | n^2 | n^2 | 1 | No |
+| **堆排序** | n log(n) | n log(n) | n log(n) | 1 | No |
+| **归并排序** | n log(n) | n log(n) | n log(n) | n | Yes |
+| **快速排序** | n log(n) | n log(n) | n^2 | log(n) | No |
+| **希尔排序** | n log(n) | 取决于差距序列 | n (log(n))^2 | 1 | No |
diff --git a/README.zh-TW.md b/README.zh-TW.md
index 4f7d4468..40f9ef62 100644
--- a/README.zh-TW.md
+++ b/README.zh-TW.md
@@ -8,8 +8,9 @@
_Read this in other languages:_
[_English_](https://github.com/trekhleb/javascript-algorithms/),
-[简体中文](README.zh-CN.md),
-[한국어](README.ko-KR.md)
+[_简体中文_](README.zh-CN.md),
+[_한국어_](README.ko-KR.md),
+[_Polski_](README.pl-PL.md)
> We’re writing a book that will clearly explain, in detail, the main algorithms.
If you’d like to be notified when the “JavaScript Algorithms” book
@@ -191,7 +192,7 @@ npm test -- 'playground'
### 資料結構運作複雜度
-| 資料結構 | 存取 | 搜尋 | 插入 | 刪除 |
+| 資料結構 | 存取 | 搜尋 | 插入 | 刪除 |
| ----------------------- | :-------: | :-------: | :-------: | :-------: |
| **陣列** | 1 | n | n | n |
| **堆疊** | n | n | 1 | 1 |
@@ -206,11 +207,11 @@ npm test -- 'playground'
### 陣列排序演算法複雜度
| 名稱 | 最佳 | 平均 | 最差 | 記憶體 | 穩定 |
-| --------------------- | :-------: | :-------: | :-----------: | :-------: | :-------: |
+| ---------------------- | :-------: | :-------: | :-----------: | :-------: | :-------: |
| **氣派排序** | n | n^2 | n^2 | 1 | Yes |
| **插入排序** | n | n^2 | n^2 | 1 | Yes |
| **選擇排序** | n^2 | n^2 | n^2 | 1 | No |
| **Heap 排序** | n log(n) | n log(n) | n log(n) | 1 | No |
-| **合併排序** | n log(n) | n log(n) | n log(n) | n | Yes |
+| **合併排序** | n log(n) | n log(n) | n log(n) | n | Yes |
| **快速排序** | n log(n) | n log(n) | n^2 | log(n) | No |
-| **希爾排序** | n log(n) | 由gap sequence決定 | n (log(n))^2 | 1 | No |
+| **希爾排序** | n log(n) | 由gap sequence決定 | n (log(n))^2 | 1 | No |