Commit Graph

548 Commits

Author SHA1 Message Date
Sylvester-ABC
d91edc9a39 update on readme (#235)
I make sure readers get the full understanding of the documentation
2018-12-09 16:10:30 +02:00
Oleksii Trekhleb
2382225e03 Add comments to Cartesian Product function. 2018-12-05 06:06:29 +02:00
Oleksii Trekhleb
243be8f2d1 Add comments to binarySearch function. 2018-12-04 08:04:24 +02:00
Oleksii Trekhleb
1ecb5b4236 Add comparator annotations. 2018-11-30 07:43:09 +02:00
Oleksii Trekhleb
f7ebddc82d Remove duplicated methods from Graph class. 2018-11-26 06:30:56 +02:00
Oleksii Trekhleb
9bc2800848 Add Recursive Staircase Problem. 2018-11-14 17:45:14 +02:00
Silence Tang
fac2d1ff50 use Destructuring in change data (#233) 2018-10-23 05:45:58 +03:00
catchme
fad170cfc8 fix typo error (#228) 2018-10-18 06:19:46 +03:00
Yavorski
6bd6072d45 Properly detect min and max element in array (#224) 2018-10-17 06:19:14 +03:00
Sid
5d12638ab5 BubbleSort: use Destructuring assignment to swap values (#226)
* BubbleSort: use Destructuring assignment to swap values

* lint: add semi
2018-10-17 06:13:27 +03:00
kiinlam
044441e259 Add prepend and fix bug (#227)
Add prepend operation and fix some mistake in pseudocode.
2018-10-17 06:08:34 +03:00
Oleksii Trekhleb
afa4948767 Simplify AVL tree node deletion. 2018-09-24 09:45:31 +03:00
Hafidz Jazuli Luthfi
04e533e4b5 Add remove method (#33)
Remove node in AvlTree with auto balancing.

Fix issue: https://github.com/trekhleb/javascript-algorithms/issues/13
2018-09-24 09:12:38 +03:00
Yavorski
9f3561d291 Fix Stack pop comlexity to be O(1) (#214)
* By definition Stack push/pop time complexity should be O(1).
* Fix is applied by removing head instead of tail in pop method.
* Push method now do preprend instead of append.
* Fix consistency between toString and toArray methods.
2018-09-24 07:31:18 +03:00
Oleksii Trekhleb
45fb2a24be Vectorize images for Levenshtein Distance. 2018-09-20 16:25:46 +03:00
Ocn
40e48ddfb2 Fix minor typos in README (#211) 2018-09-20 16:23:17 +03:00
Oleksii Trekhleb
2451db975d Add iterative version of Euclidean algorithm. 2018-09-18 08:17:47 +03:00
Vamshi Bachaneboina
c00c689255 Update euclideanAlgorithm.js (#207)
Method 2 is easy to evaluate or understand without using recursion stack!
2018-09-18 08:04:56 +03:00
Oleksii Trekhleb
51d67e7eac Add fibonacci Binet's formula. 2018-09-15 09:17:19 +03:00
Karlo Vrbić
a23400380d Add fibonnaci sequence closed form function (#130)
* Add fibonnaci sequence closed form function

* Revert package-lock.json
2018-09-14 18:01:41 +03:00
Oleksii Trekhleb
dea368cb16 Add more fibonacci test cases. 2018-09-14 17:56:38 +03:00
Oleksii Trekhleb
46bc844fc6 Add several more comments to in place quick sort. 2018-09-14 17:21:51 +03:00
Kevin Brewer
66f19d65c5 Minor refactor of QuickSortInPlace for simplification (#187) 2018-09-14 17:03:37 +03:00
Oleksii Trekhleb
92b9e6ad1d Add more tests to isPositive() bitwise function. 2018-09-14 08:06:48 +03:00
ADITYA
ab7755aad7 feat(bitwise): Function to check if a number is positive (#204) 2018-09-14 07:42:42 +03:00
Oleksii Trekhleb
de6a24e0d1 Minor code style fixes for bitwise multiplication. 2018-09-08 23:09:04 +03:00
ADITYA
bc8943dee2 Perform multiplication of any two integers positive or negative through bit manipulations (#201) 2018-09-08 22:51:03 +03:00
Vinicius
1a62078f26 Improve JSDocs in Stack.js (#203)
The functions' comments were copied from Queue.js, but some words were not replaced.
I also made some changes to the wording for clarification.
2018-09-08 22:35:24 +03:00
Oleksii Trekhleb
6f27113993 Add reverse() method for doubly linked list. 2018-09-08 22:25:23 +03:00
Oleksii Trekhleb
80ecbe0b3e Move linked list traversals into separate section. 2018-09-08 22:20:52 +03:00
Oleksii Trekhleb
2feec48ea6 Add more test cases for linked list reversion. 2018-09-08 12:16:15 +03:00
Hanh D. TRAN
4989a6a3b0 Add LinkedList traversal and reverse implementations (#194)
* Add LinkedList traverse function

* Add LinkedList reverse traversal implementations

* Update LinkedList traverse function

* Update LinkedList reverse traversal and test cases

* Update LinkedList traversal tests
2018-09-08 11:55:51 +03:00
Oleksii Trekhleb
7dc60c96bf Add Fast Powering algorithm. 2018-09-04 18:27:38 +03:00
Oleksii Trekhleb
8116aa7cfb Refactor fast powering algorithm. 2018-09-04 17:35:48 +03:00
HatimLokhandwala
8676c1b9fe Adding math algorithm to compute power and its tests (#172)
* Adding math algorithm to compute power and its tests

* adding more test cases, updating compute power js

* Updating ReadMe for power computation algorithm
2018-09-04 17:21:09 +03:00
Oleksii Trekhleb
ea78fb6eaf Fix ShellSort README errors (issue #195). 2018-09-04 12:05:25 +03:00
Oleksii Trekhleb
788ff22c90 Minor refactoring of dpMaximumSubarray. 2018-09-04 11:39:43 +03:00
Oleksii Trekhleb
814fa773ca Add more test cases for finding max sub-array algorithm. 2018-09-04 11:35:13 +03:00
Kevin Brewer
2a2b5daa7d Simplify dpMaximumSubarray (#189)
* Simplify dpMaximumSubarray

* change var name from currentMaxSum to currentSum

* fix comment with old variable name
2018-09-04 09:47:05 +03:00
Kevin Brewer
6b0bacd993 clarify comments (#193) 2018-08-31 12:14:29 +03:00
Hanh D. TRAN
002d32a8cd Update LinkedList prepend pseudocode and append test (#188)
* Add LinkedList test

* Add pseudocode for LinkedList prepend
2018-08-30 08:43:21 +03:00
Jack Lee
872521fb03 Partial translation of Simplified Chinese (#185)
* init

* init

* init

* init
2018-08-30 08:30:24 +03:00
Oleksii Trekhleb
68af4fc165 Clean up Heaps. 2018-08-30 08:25:38 +03:00
Kevin Brewer
bc50fff2ee clean up Heap implementation (#184) 2018-08-30 08:11:14 +03:00
Oleksii Trekhleb
a8d7435b8d Fix LinkedList pseudo-code (issue #191). 2018-08-30 08:04:47 +03:00
Oleksii Trekhleb
af64d12a23 Add more unicode related tests to longestCommonSubstring algorithm. 2018-08-28 06:58:43 +03:00
DADDOU Mohamed El Amine
82ac89b16a fix longestCommonSubstring() to handle unicode characters (#129) (#176) 2018-08-28 06:56:44 +03:00
Klaus Sinani
e09d526785 Fix minor typo on segment-tree readme (#183) 2018-08-28 06:37:19 +03:00
Oleksii Trekhleb
b9d0d9ab38 Add isPowerOfTwo function. 2018-08-27 17:13:43 +03:00
Tapasweni Pathak
70b0e0a652 Add ifPowerOf2c (#155) 2018-08-27 16:59:43 +03:00
Mahmoud Aslan
20497bb044 Fixed Contains operation pseudo code (#180) 2018-08-27 16:37:25 +03:00
Oleksii Trekhleb
b1f31cd067 Fix issue #179. 2018-08-27 16:30:18 +03:00
Oleksii Trekhleb
bdf8a174eb Improve Trie test coverage back to 100%. 2018-08-27 15:54:55 +03:00
Oleksii Trekhleb
4104155182 Simplify deletion method of TrieNode. 2018-08-27 15:45:48 +03:00
Oleksii Trekhleb
a7ffba157c Extend Trie and TrieNode tests. 2018-08-27 15:38:50 +03:00
Kevin Brewer
d25eff49e6 Add Trie.deleteWord and TrieNode.removeChild (#181) 2018-08-27 15:33:16 +03:00
Oleksii Trekhleb
6e2ff9b604 Add comments to Trie "add" method. 2018-08-25 13:34:05 +03:00
Kevin Brewer
eac3e81a21 Fix TrieNode.addChild so substrings get marked as complete words (#177) 2018-08-25 13:27:44 +03:00
Oleksii Trekhleb
20b0c48e84 Add comments to Stack code. 2018-08-22 07:49:22 +03:00
Oleksii Trekhleb
571d9312cd Fix trie's doesWordExists method. 2018-08-21 23:03:04 +03:00
Oleg
392cd9806d Fix method Trie::doesWordExist() (#175)
Method Trie::doesWordExist() return `true` when word is complete otherwise `false`
2018-08-21 23:00:11 +03:00
Oleksii Trekhleb
5eb1195c61 Add backtracking solution for finding the power-set of a set. 2018-08-21 16:55:26 +03:00
Oleksii Trekhleb
bffacf0707 Add nQueens bitwise solution. 2018-08-20 18:12:56 +03:00
Oleksii Trekhleb
20159312be Move nQueens bitwise version to the same folder with nQueens algorithm. 2018-08-20 15:59:37 +03:00
Matej Jellus
18ba3a4db3 Add N queens problem bitwise solution (#15)
* Add N queens problem bitwise solution

* Update code to corespond with eslint
2018-08-20 15:57:01 +03:00
Oleksii Trekhleb
5a57c5f018 Add comments to Queue class. 2018-08-17 18:00:20 +03:00
Oleksii Trekhleb
5eea37837f Add annotations to Queue. 2018-08-17 17:47:29 +03:00
Oleksii Trekhleb
260f24b2cb Update Bits Operations README. 2018-08-17 10:41:18 +03:00
Oleksii Trekhleb
ecfc287927 Update Bits Operations README. 2018-08-17 10:36:47 +03:00
Oleksii Trekhleb
983492115d Fix tests. 2018-08-17 10:31:18 +03:00
Oleksii Trekhleb
a02d5f625d Move common Max/Min Heap code to Heap.js. 2018-08-17 10:23:07 +03:00
Oleksii Trekhleb
031c5da556 Refactor Heaps. 2018-08-16 21:03:32 +03:00
Oleksii Kersov
10e633f075 Add MaxHeap (#167)
* Add MaxHeap

* Add parent class for MinHeap and MaxHeap
2018-08-16 18:18:19 +03:00
Oleksii Trekhleb
6e63a0548e Add Inverse Discrete Fourier Transform. 2018-08-16 13:14:40 +03:00
Oleksii Trekhleb
351a745f55 Refactor DFT and add common tests for Fourier. 2018-08-16 12:37:06 +03:00
Oleksii Trekhleb
13ed5061a3 Update FFT tests. 2018-08-15 17:47:32 +03:00
Oleksii Trekhleb
c2f7e49f07 Fix README for Fourier transform. 2018-08-15 13:40:16 +03:00
Oleksii Trekhleb
d736b2f355 Style fixes for FFT code. 2018-08-15 13:32:09 +03:00
Oleksii Trekhleb
ac9920a0f3 Style fixes for FFT code. 2018-08-15 13:27:50 +03:00
Oleksii Trekhleb
a88c45a329 Fix typos. 2018-08-15 13:00:04 +03:00
Oleksii Trekhleb
12d649e372 Implement Discrete Fourier Transform function. 2018-08-15 12:56:23 +03:00
Oleksii Trekhleb
53a0b6168d Fix bug with converting complex number into polar form. 2018-08-15 12:55:35 +03:00
Oleksii Trekhleb
4bdac18ae0 Add polar form of complex number to README. 2018-08-14 23:19:30 +03:00
Oleksii Trekhleb
d0c4baf7b3 Add DFT. 2018-08-14 23:12:17 +03:00
Oleksii Trekhleb
8e66189eff Update Fourier README. 2018-08-14 23:03:07 +03:00
Oleksii Trekhleb
e252eb631d Add polar representation of complex numbers. 2018-08-14 22:56:13 +03:00
Oleksii Trekhleb
096d5a8b5b Add Radian. 2018-08-14 22:31:13 +03:00
Oleksii Trekhleb
b3315966e5 Refactor complex numbers. 2018-08-14 21:30:57 +03:00
Oleksii Trekhleb
7d6854489e Merge branches 'fourier' and 'master' of https://github.com/trekhleb/javascript-algorithms into fourier 2018-08-14 17:45:56 +03:00
Oleksii Trekhleb
b0c9057cdb Fix pseudocode formatting. 2018-08-14 15:46:58 +03:00
Moshe
b6ac765c99 Pseudocode + big O for BFS (#166) 2018-08-14 15:21:34 +03:00
Moshe
953eaf8970 Update README.md (#165)
Add Pseudocode and Big O
2018-08-14 15:20:54 +03:00
Moshe
7207bcefb2 Update README.md (#164)
Add Pseudocode for Doubly Linked List
2018-08-14 15:20:09 +03:00
Moshe
5667cfb550 Update README.md (#163)
fix verbiage
2018-08-14 15:18:55 +03:00
Oleksii Trekhleb
29fb0c7055 Rename variables. 2018-08-13 18:09:46 +03:00
Oleksii Trekhleb
8ea35a5549 Merge branch 'master' of https://github.com/trekhleb/javascript-algorithms into fourier 2018-08-13 18:08:07 +03:00
Oleksii Trekhleb
9111568fc0 Add bits counter function. 2018-08-13 18:06:48 +03:00
Oleksii Trekhleb
7d3115edaa Use existing complex numbers implementation for Fourier. 2018-08-13 17:57:17 +03:00
Prateek Karnal
6f10b0e10f Added Fast Fourier transform (#135)
* Added Fast fourier transform

* Adding DFT explanation

* Added tests for Fast Fourier transform

* Fixed some comments
2018-08-13 17:45:50 +03:00
Oleksii Trekhleb
3c37ba4424 Add bitsDiff function. 2018-08-13 11:02:58 +03:00