Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: joelgrodriguez/javascript-algorithms
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: trekhleb/javascript-algorithms
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Able to merge. These branches can be automatically merged.
Loading
Showing with 20,462 additions and 6,401 deletions.
  1. +1 −0 .editorconfig
  2. +6 −0 .eslintrc
  3. +1 −1 .github/workflows/CI.yml
  4. +1 −0 .husky/.gitignore
  5. +5 −0 .husky/pre-commit
  6. +0 −5 .huskyrc.json
  7. +1 −0 .npmrc
  8. +1 −0 .nvmrc
  9. +18 −0 BACKERS.md
  10. +8 −2 README.ar-AR.md
  11. +338 −0 README.de-DE.md
  12. +14 −8 README.es-ES.md
  13. +7 −1 README.fr-FR.md
  14. +370 −0 README.he-IL.md
  15. +44 −38 README.id-ID.md
  16. +7 −1 README.it-IT.md
  17. +10 −4 README.ja-JP.md
  18. +8 −2 README.ko-KR.md
  19. +75 −25 README.md
  20. +8 −2 README.pl-PL.md
  21. +135 −122 README.pt-BR.md
  22. +28 −2 README.ru-RU.md
  23. +29 −20 README.tr-TR.md
  24. +7 −1 README.uk-UA.md
  25. +359 −0 README.uz-UZ.md
  26. +329 −0 README.vi-VN.md
  27. +8 −2 README.zh-CN.md
  28. +8 −2 README.zh-TW.md
  29. +3 −1 jest.config.js
  30. +12,199 −5,685 package-lock.json
  31. +24 −20 package.json
  32. +3 −0 src/algorithms/cryptography/caesar-cipher/README.md
  33. +29 −0 src/algorithms/cryptography/caesar-cipher/README.ru-RU.md
  34. +2 −2 src/algorithms/graph/breadth-first-search/README.md
  35. +16 −0 src/algorithms/graph/dijkstra/README.ko-KR.md
  36. +3 −0 src/algorithms/graph/dijkstra/README.md
  37. +29 −0 src/algorithms/graph/kruskal/README.ko-KR.md
  38. +3 −0 src/algorithms/graph/kruskal/README.md
  39. +509 −0 src/algorithms/image-processing/seam-carving/README.md
  40. +509 −0 src/algorithms/image-processing/seam-carving/README.ru-RU.md
  41. +85 −0 src/algorithms/image-processing/seam-carving/__tests__/resizeImageWidth.node.js
  42. BIN src/algorithms/image-processing/seam-carving/__tests__/test-image-after.png
  43. BIN src/algorithms/image-processing/seam-carving/__tests__/test-image-before.png
  44. +253 −0 src/algorithms/image-processing/seam-carving/resizeImageWidth.js
  45. +39 −0 src/algorithms/image-processing/utils/imageData.js
  46. +4 −0 src/algorithms/linked-list/reverse-traversal/README.md
  47. +23 −0 src/algorithms/linked-list/reverse-traversal/README.pt-BR.md
  48. +19 −0 src/algorithms/linked-list/reverse-traversal/README.zh-CN.md
  49. +3 −1 src/algorithms/linked-list/traversal/README.md
  50. +24 −0 src/algorithms/linked-list/traversal/README.pt-BR.md
  51. +19 −0 src/algorithms/linked-list/traversal/README.zh-CN.md
  52. +103 −0 src/algorithms/math/binary-floating-point/README.md
  53. +32 −0 src/algorithms/math/binary-floating-point/__tests__/bitsToFloat.test.js
  54. +20 −0 src/algorithms/math/binary-floating-point/__tests__/floatAsBinaryString.test.js
  55. +119 −0 src/algorithms/math/binary-floating-point/bitsToFloat.js
  56. +61 −0 src/algorithms/math/binary-floating-point/floatAsBinaryString.js
  57. BIN ...lgorithms/math/binary-floating-point/images/02-half-precision-floating-point-number-explained.png
  58. BIN src/algorithms/math/binary-floating-point/images/03-scientific-notation.png
  59. +71 −0 src/algorithms/math/binary-floating-point/testCases.js
  60. +2 −2 src/algorithms/math/bits/README.zh-CN.md
  61. +32 −0 src/algorithms/math/factorial/README.ka-GE.md
  62. +1 −1 src/algorithms/math/factorial/README.md
  63. +38 −0 src/algorithms/math/factorial/README.tr-TR.md
  64. +33 −0 src/algorithms/math/factorial/README.uk-UA.md
  65. +2 −1 src/algorithms/math/fibonacci/README.fr-FR.md
  66. +20 −0 src/algorithms/math/fibonacci/README.ka-GE.md
  67. +2 −1 src/algorithms/math/fibonacci/README.md
  68. +2 −1 src/algorithms/math/fibonacci/README.zh-CN.md
  69. +0 −2 src/algorithms/math/fibonacci/__test__/fibonacciNth.test.js
  70. +8 −0 src/algorithms/ml/k-means/README.md
  71. +35 −0 src/algorithms/ml/k-means/README.pt-BR.md
  72. +3 −0 src/algorithms/ml/knn/README.md
  73. +44 −0 src/algorithms/ml/knn/README.pt-BR.md
  74. +27 −0 src/algorithms/search/binary-search/README.es-ES.md
  75. +12 −8 src/algorithms/search/binary-search/README.md
  76. +23 −0 src/algorithms/search/binary-search/README.pt-BR.md
  77. +1 −1 src/algorithms/search/binary-search/binarySearch.js
  78. +4 −0 src/algorithms/search/linear-search/README.md
  79. +19 −0 src/algorithms/search/linear-search/README.pt-BR.md
  80. +15 −17 src/algorithms/sets/combinations/README.md
  81. BIN src/algorithms/sets/combinations/images/combinations-overview.jpg
  82. BIN src/algorithms/sets/combinations/images/combinations-with-repetitions.jpg
  83. BIN src/algorithms/sets/combinations/images/combinations-without-repetitions.jpg
  84. BIN src/algorithms/sets/combinations/images/overview.png
  85. +17 −0 src/algorithms/sets/longest-common-subsequence/__test__/longestCommonSubsequenceRecursive.test.js
  86. +36 −0 src/algorithms/sets/longest-common-subsequence/longestCommonSubsequenceRecursive.js
  87. +12 −5 src/algorithms/sets/maximum-subarray/README.md
  88. +1 −1 src/algorithms/sets/maximum-subarray/__test__/bfMaximumSubarray.test.js
  89. +16 −0 src/algorithms/sets/maximum-subarray/__test__/dcMaximumSubarraySum.test.js
  90. +1 −1 src/algorithms/sets/maximum-subarray/__test__/dpMaximumSubarray.test.js
  91. +33 −0 src/algorithms/sets/maximum-subarray/dcMaximumSubarraySum.js
  92. +10 −12 src/algorithms/sets/permutations/README.md
  93. BIN src/algorithms/sets/permutations/images/overview.png
  94. BIN src/algorithms/sets/permutations/images/permutations-overview.jpeg
  95. BIN src/algorithms/sets/permutations/images/permutations-with-repetitions.jpg
  96. BIN src/algorithms/sets/permutations/images/permutations-without-repetitions.jpg
  97. +49 −11 src/algorithms/sets/power-set/README.md
  98. +28 −0 src/algorithms/sets/power-set/__test__/caPowerSet.test.js
  99. +37 −0 src/algorithms/sets/power-set/caPowerSet.js
  100. +7 −4 src/algorithms/sorting/bubble-sort/README.pt-BR.md
  101. +46 −0 src/algorithms/sorting/bucket-sort/BucketSort.js
  102. +35 −0 src/algorithms/sorting/bucket-sort/README.md
  103. +33 −0 src/algorithms/sorting/bucket-sort/__test__/BucketSort.test.js
  104. BIN src/algorithms/sorting/bucket-sort/images/bucket_sort_1.png
  105. BIN src/algorithms/sorting/bucket-sort/images/bucket_sort_2.png
  106. +3 −0 src/algorithms/sorting/counting-sort/README.md
  107. +70 −0 src/algorithms/sorting/counting-sort/README.pt-br.md
  108. +3 −0 src/algorithms/sorting/heap-sort/README.md
  109. +20 −0 src/algorithms/sorting/heap-sort/README.pt-BR.md
  110. +3 −0 src/algorithms/sorting/insertion-sort/README.md
  111. +22 −0 src/algorithms/sorting/insertion-sort/README.pt-BR.md
  112. +22 −0 src/algorithms/sorting/merge-sort/README.ko-KR.md
  113. +16 −12 src/algorithms/sorting/merge-sort/README.md
  114. +38 −0 src/algorithms/sorting/merge-sort/README.pt-BR.md
  115. +1 −1 src/algorithms/sorting/quick-sort/QuickSortInPlace.js
  116. +4 −0 src/algorithms/sorting/quick-sort/README.md
  117. +39 −0 src/algorithms/sorting/quick-sort/README.pt-BR.md
  118. +27 −0 src/algorithms/sorting/quick-sort/README.zh-CN.md
  119. +22 −19 src/algorithms/sorting/radix-sort/README.md
  120. +48 −0 src/algorithms/sorting/radix-sort/README.pt-BR.md
  121. BIN src/algorithms/sorting/radix-sort/images/radix-sort.png
  122. +3 −0 src/algorithms/sorting/selection-sort/README.md
  123. +20 −0 src/algorithms/sorting/selection-sort/README.pt-BR.md
  124. +3 −0 src/algorithms/sorting/shell-sort/README.md
  125. +60 −0 src/algorithms/sorting/shell-sort/README.pt-BR.md
  126. +44 −0 src/algorithms/stack/valid-parentheses/README.md
  127. +23 −0 src/algorithms/stack/valid-parentheses/__test__/validParentheses.test.js
  128. +42 −0 src/algorithms/stack/valid-parentheses/validParentheses.js
  129. +143 −0 src/algorithms/statistics/weighted-random/README.md
  130. +64 −0 src/algorithms/statistics/weighted-random/__test__/weightedRandom.test.js
  131. BIN src/algorithms/statistics/weighted-random/images/cover.png
  132. +52 −0 src/algorithms/statistics/weighted-random/weightedRandom.js
  133. +1 −1 src/algorithms/string/knuth-morris-pratt/knuthMorrisPratt.js
  134. +2 −0 src/algorithms/string/longest-common-substring/__test__/longestCommonSubstring.test.js
  135. +2 −0 src/algorithms/string/longest-common-substring/longestCommonSubstring.js
  136. +29 −0 src/algorithms/string/palindrome/README.md
  137. +15 −0 src/algorithms/string/palindrome/__test__/isPalindrome.test.js
  138. +19 −0 src/algorithms/string/palindrome/isPalindrome.js
  139. +3 −3 src/algorithms/tree/breadth-first-search/breadthFirstSearch.js
  140. +1 −1 src/algorithms/uncategorized/best-time-to-buy-sell-stocks/README.md
  141. +1 −1 src/algorithms/uncategorized/n-queens/README.md
  142. +20 −19 src/data-structures/bloom-filter/README.md
  143. +2 −2 src/data-structures/bloom-filter/README.pt-BR.md
  144. +54 −0 src/data-structures/bloom-filter/README.uk-UA.md
  145. +78 −0 src/data-structures/disjoint-set/DisjointSetAdhoc.js
  146. +13 −8 src/data-structures/disjoint-set/README.md
  147. +5 −5 src/data-structures/disjoint-set/README.pt-BR.md
  148. +22 −0 src/data-structures/disjoint-set/README.uk-UA.md
  149. +50 −0 src/data-structures/disjoint-set/__test__/DisjointSetAdhoc.test.js
  150. +104 −0 src/data-structures/doubly-linked-list/README.es-ES.md
  151. +6 −4 src/data-structures/doubly-linked-list/README.ja-JP.md
  152. +6 −4 src/data-structures/doubly-linked-list/README.ko-KR.md
  153. +27 −23 src/data-structures/doubly-linked-list/README.md
  154. +9 −7 src/data-structures/doubly-linked-list/README.pt-BR.md
  155. +11 −9 src/data-structures/doubly-linked-list/README.ru-RU.md
  156. +109 −0 src/data-structures/doubly-linked-list/README.uk-UA.md
  157. +10 −8 src/data-structures/doubly-linked-list/README.zh-CN.md
  158. BIN src/data-structures/doubly-linked-list/images/doubly-linked-list.jpeg
  159. +25 −0 src/data-structures/graph/README.fr-FR.md
  160. +18 −13 src/data-structures/graph/README.md
  161. +3 −1 src/data-structures/graph/README.pt-BR.md
  162. +4 −2 src/data-structures/graph/README.ru-RU.md
  163. +24 −0 src/data-structures/graph/README.uk-UA.md
  164. +2 −2 src/data-structures/graph/README.zh-CN.md
  165. BIN src/data-structures/graph/images/graph.jpeg
  166. +4 −2 src/data-structures/hash-table/README.fr-FR.md
  167. +5 −3 src/data-structures/hash-table/README.ja-JP.md
  168. +27 −0 src/data-structures/hash-table/README.ko-KR.md
  169. +16 −12 src/data-structures/hash-table/README.md
  170. +6 −4 src/data-structures/hash-table/README.pt-BR.md
  171. +7 −3 src/data-structures/hash-table/README.ru-RU.md
  172. +29 −0 src/data-structures/hash-table/README.uk-UA.md
  173. +8 −4 src/data-structures/hash-table/README.zh-CN.md
  174. BIN src/data-structures/hash-table/images/collision-resolution.jpeg
  175. BIN src/data-structures/hash-table/images/hash-table.jpeg
  176. +1 −1 src/data-structures/heap/Heap.js
  177. +115 −0 src/data-structures/heap/MaxHeapAdhoc.js
  178. +117 −0 src/data-structures/heap/MinHeapAdhoc.js
  179. +6 −2 src/data-structures/heap/README.fr-FR.md
  180. +6 −2 src/data-structures/heap/README.ja-JP.md
  181. +23 −0 src/data-structures/heap/README.ko-KR.md
  182. +43 −5 src/data-structures/heap/README.md
  183. +6 −2 src/data-structures/heap/README.pt-BR.md
  184. +6 −2 src/data-structures/heap/README.ru-RU.md
  185. +22 −0 src/data-structures/heap/README.tr-TR.md
  186. +25 −0 src/data-structures/heap/README.uk-UA.md
  187. +23 −19 src/data-structures/heap/README.zh-CN.md
  188. +91 −0 src/data-structures/heap/__test__/MaxHeapAdhoc.test.js
  189. +91 −0 src/data-structures/heap/__test__/MinHeapAdhoc.test.js
  190. BIN src/data-structures/heap/images/array-representation.jpeg
  191. BIN src/data-structures/heap/images/max-heap.jpeg
  192. BIN src/data-structures/heap/images/min-heap.jpeg
  193. +35 −1 src/data-structures/linked-list/LinkedList.js
  194. +28 −27 src/data-structures/linked-list/README.es-ES.md
  195. +4 −2 src/data-structures/linked-list/README.ja-JP.md
  196. +5 −3 src/data-structures/linked-list/README.ko-KR.md
  197. +7 −2 src/data-structures/linked-list/README.md
  198. +9 −7 src/data-structures/linked-list/README.pt-BR.md
  199. +5 −3 src/data-structures/linked-list/README.ru-RU.md
  200. +161 −0 src/data-structures/linked-list/README.tr-TR.md
  201. +147 −0 src/data-structures/linked-list/README.uk-UA.md
  202. +155 −0 src/data-structures/linked-list/README.vi-VN.md
  203. +5 −3 src/data-structures/linked-list/README.zh-CN.md
  204. +16 −1 src/data-structures/linked-list/__test__/LinkedList.test.js
  205. BIN src/data-structures/linked-list/images/linked-list.jpeg
  206. +153 −0 src/data-structures/lru-cache/LRUCache.js
  207. +53 −0 src/data-structures/lru-cache/LRUCacheOnMap.js
  208. +51 −0 src/data-structures/lru-cache/README.ko-KR.md
  209. +54 −0 src/data-structures/lru-cache/README.md
  210. +150 −0 src/data-structures/lru-cache/__test__/LRUCache.test.js
  211. +148 −0 src/data-structures/lru-cache/__test__/LRUCacheOnMap.test.js
  212. BIN src/data-structures/lru-cache/images/lru-cache.jpg
  213. +12 −0 src/data-structures/priority-queue/README.ko-KR.md
  214. +11 −9 src/data-structures/priority-queue/README.md
  215. +4 −4 src/data-structures/priority-queue/README.pt-BR.md
  216. +21 −0 src/data-structures/priority-queue/README.uk-UA.md
  217. +1 −1 src/data-structures/queue/Queue.js
  218. +3 −1 src/data-structures/queue/README.fr-FR.md
  219. +3 −1 src/data-structures/queue/README.ja-JP.md
  220. +23 −0 src/data-structures/queue/README.ko-KR.md
  221. +20 −16 src/data-structures/queue/README.md
  222. +3 −1 src/data-structures/queue/README.pt-BR.md
  223. +5 −3 src/data-structures/queue/README.ru-RU.md
  224. +21 −0 src/data-structures/queue/README.uk-UA.md
  225. +22 −0 src/data-structures/queue/README.vi-VN.md
  226. +3 −1 src/data-structures/queue/README.zh-CN.md
  227. BIN src/data-structures/queue/images/queue.jpeg
  228. +3 −1 src/data-structures/stack/README.fr-FR.md
  229. +3 −1 src/data-structures/stack/README.ja-JP.md
  230. +26 −0 src/data-structures/stack/README.ko-KR.md
  231. +14 −10 src/data-structures/stack/README.md
  232. +7 −5 src/data-structures/stack/README.pt-BR.md
  233. +4 −2 src/data-structures/stack/README.ru-RU.md
  234. +25 −0 src/data-structures/stack/README.uk-UA.md
  235. +27 −0 src/data-structures/stack/README.vi-VN.md
  236. +3 −1 src/data-structures/stack/README.zh-CN.md
  237. BIN src/data-structures/stack/images/stack.jpeg
  238. BIN src/data-structures/stack/images/stack.jpg
  239. +13 −11 src/data-structures/tree/README.md
  240. +4 −2 src/data-structures/tree/README.pt-BR.md
  241. +4 −2 src/data-structures/tree/README.zh-CN.md
  242. +29 −27 src/data-structures/tree/binary-search-tree/README.md
  243. +10 −9 src/data-structures/tree/binary-search-tree/README.pt-BR.md
  244. BIN src/data-structures/tree/binary-search-tree/images/binary-search-tree.jpg
  245. BIN src/data-structures/tree/images/tree.jpeg
  246. +19 −0 src/data-structures/trie/README.ko-KO.md
  247. +17 −13 src/data-structures/trie/README.md
  248. +6 −4 src/data-structures/trie/README.pt-BR.md
  249. +3 −1 src/data-structures/trie/README.ru-RU.md
  250. +27 −0 src/data-structures/trie/README.uk-UA.md
  251. +4 −2 src/data-structures/trie/README.zh-CN.md
  252. BIN src/data-structures/trie/images/trie.jpg
  253. +5 −2 src/playground/__test__/playground.test.js
  254. +12 −1 src/playground/playground.js
  255. +1 −0 src/utils/comparator/Comparator.js
1 change: 1 addition & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -8,3 +8,4 @@ charset = utf-8
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
quote_type = single
6 changes: 6 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -11,5 +11,11 @@
"class-methods-use-this": "off",
"arrow-body-style": "off",
"no-loop-func": "off"
},
"ignorePatterns": ["*.md", "*.png", "*.jpeg", "*.jpg"],
"settings": {
"react": {
"version": "18.2.0"
}
}
}
2 changes: 1 addition & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ 14.x ]
node-version: [ 16.x ]

steps:
- name: Checkout repository
1 change: 1 addition & 0 deletions .husky/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
_
5 changes: 5 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npm run lint
# npm run test
5 changes: 0 additions & 5 deletions .huskyrc.json

This file was deleted.

1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
engine-strict=true
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v16.15.0
18 changes: 18 additions & 0 deletions BACKERS.md
Original file line number Diff line number Diff line change
@@ -14,6 +14,24 @@

`null`

<!--
<table>
<tr>
<td align="center">
<a href="[PROFILE_URL]">
<img
src="[PROFILE_IMG_SRC]"
width="50"
height="50"
/>
</a>
<br />
<a href="[PROFILE_URL]">[PROFILE_NAME]</a>
</td>
</tr>
</table>
-->

<!--
<ul>
<li>
10 changes: 8 additions & 2 deletions README.ar-AR.md
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
[![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)

تحتوي هذا مقالة على أمثلة عديدة تستند إلى الخوارزميات الشائعة وهياكل البيانات في الجافا سكريبت.
تحتوي هذه المقالة على أمثلة عديدة تستند إلى الخوارزميات الشائعة وهياكل البيانات في الجافا سكريبت.

كل خوارزمية وهياكل البيانات لها برنامج README منفصل خاص بها
مع التفسيرات والروابط ذات الصلة لمزيد من القراءة (بما في ذلك تلك
@@ -21,7 +21,11 @@ _اقرأ هذا في لغات أخرى:_
[_Português_](README.pt-BR.md),
[_Русский_](README.ru-RU.md),
[_Türk_](README.tr-TR.md),
[_Italiana_](README.it-IT.md)
[_Italiana_](README.it-IT.md),
[_Tiếng Việt_](README.vi-VN.md),
[_Deutsch_](README.de-DE.md),
[_Uzbek_](README.uz-UZ.md)
[_עברית_](README.he-IL.md)

☝ ملاحضة هذا المشروع مخصص للاستخدام لأغراض التعلم والبحث
فقط ، و ** ليست ** معدة للاستخدام في **الإنتاج**
@@ -320,3 +324,5 @@ npm test -- 'playground'
> يمكنك دعم هذا المشروع عبر ❤️️ [GitHub](https://github.com/sponsors/trekhleb) أو ❤️️ [Patreon](https://www.patreon.com/trekhleb).
[الناس الذين يدعمون هذا المشروع](https://github.com/trekhleb/javascript-algorithms/blob/master/BACKERS.md) `∑ = 0`

> ℹ️ A few more [projects](https://trekhleb.dev/projects/) and [articles](https://trekhleb.dev/blog/) about JavaScript and algorithms on [trekhleb.dev](https://trekhleb.dev)
Loading