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