From e447b5545d0999a77e884f0f58d904176fc12d67 Mon Sep 17 00:00:00 2001 From: Rak Laptudirm Date: Thu, 28 Apr 2022 18:58:12 +0530 Subject: [PATCH] merge: Update directory workflow (#1000) * chore: update directory workflow Workflow now only runs on `pull_request` to prevent pushing on the master branch. * chore: update commit mechanism * chore: remove rundundant script * Update UpdateDirectory.yml * Updated Documentation in README.md * Update UpdateDirectory.yml * fix: replace wrong variable * Updated Documentation in README.md Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> --- .github/workflows/CommitAndPushDirectory.sh | 10 - .github/workflows/UpdateDirectory.mjs | 2 +- .github/workflows/UpdateDirectory.yml | 17 +- DIRECTORY.md | 656 ++++++++++---------- 4 files changed, 331 insertions(+), 354 deletions(-) delete mode 100755 .github/workflows/CommitAndPushDirectory.sh diff --git a/.github/workflows/CommitAndPushDirectory.sh b/.github/workflows/CommitAndPushDirectory.sh deleted file mode 100755 index eb357addf..000000000 --- a/.github/workflows/CommitAndPushDirectory.sh +++ /dev/null @@ -1,10 +0,0 @@ -if ! git diff --quiet DIRECTORY.md; then - echo Changes found, attempting to commit and push... - git add DIRECTORY.md - git commit -am "Auto-update DIRECTORY.md" || true - git push --force origin HEAD:$GITHUB_REF || true - echo ... done. -else - echo No changes found, exiting. -fi - diff --git a/.github/workflows/UpdateDirectory.mjs b/.github/workflows/UpdateDirectory.mjs index 9a528bf20..0136f4bae 100644 --- a/.github/workflows/UpdateDirectory.mjs +++ b/.github/workflows/UpdateDirectory.mjs @@ -35,7 +35,7 @@ function pathsToMarkdown (filePaths) { for (let filepath of filePaths) { let filename = path.basename(filepath) - filepath = path.dirname(path.sep) + filepath = path.dirname(filepath) if (filepath !== oldPath) { oldPath = printPath(oldPath, filepath, output) diff --git a/.github/workflows/UpdateDirectory.yml b/.github/workflows/UpdateDirectory.yml index e8fda61c2..d5202b2d2 100644 --- a/.github/workflows/UpdateDirectory.yml +++ b/.github/workflows/UpdateDirectory.yml @@ -3,8 +3,8 @@ name: Update Directory on: push: - branches: - - master + branches-ignore: + "master" jobs: updateDirectory: @@ -22,9 +22,16 @@ jobs: - name: 🗄️ Create Directory from JS files run: node .github/workflows/UpdateDirectory.mjs - - name: 🤓 Commit & push new Directory (if needed) + - name: Configure Github Action run: | git config --global user.name github-actions git config --global user.email '${GITHUB_ACTOR}@users.noreply.github.com' - git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY - .github/workflows/CommitAndPushDirectory.sh + + - name: 🤓 Commit & push new Directory (if needed) + run: | + if [[ `git status --porcelain` ]]; then + git commit -am "Updated Documentation in README.md" + git push + else + echo "NO CHANGES DETECTED" + fi diff --git a/DIRECTORY.md b/DIRECTORY.md index db5f61980..df10ce16c 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -1,338 +1,318 @@ - -## Backtracking - * [AllCombinationsOfSizeK](https://github.com/TheAlgorithms/Javascript/blob/master/Backtracking/AllCombinationsOfSizeK.js) - * [GeneratePermutations](https://github.com/TheAlgorithms/Javascript/blob/master/Backtracking/GeneratePermutations.js) - * [KnightTour](https://github.com/TheAlgorithms/Javascript/blob/master/Backtracking/KnightTour.js) - * [NQueen](https://github.com/TheAlgorithms/Javascript/blob/master/Backtracking/NQueen.js) - * [RatInAMaze](https://github.com/TheAlgorithms/Javascript/blob/master/Backtracking/RatInAMaze.js) - * [Sudoku](https://github.com/TheAlgorithms/Javascript/blob/master/Backtracking/Sudoku.js) - * [SumOfSubset](https://github.com/TheAlgorithms/Javascript/blob/master/Backtracking/SumOfSubset.js) - -## Bit-Manipulation - * [BinaryCountSetBits](https://github.com/TheAlgorithms/Javascript/blob/master/Bit-Manipulation/BinaryCountSetBits.js) - * [IsPowerOfTwo](https://github.com/TheAlgorithms/Javascript/blob/master/Bit-Manipulation/IsPowerOfTwo.js) - * [NextPowerOfTwo](https://github.com/TheAlgorithms/Javascript/blob/master/Bit-Manipulation/NextPowerOfTwo.js) - * [SetBit](https://github.com/TheAlgorithms/Javascript/blob/master/Bit-Manipulation/SetBit.js) - -## Cache - * [LFUCache](https://github.com/TheAlgorithms/Javascript/blob/master/Cache/LFUCache.js) - * [LRUCache](https://github.com/TheAlgorithms/Javascript/blob/master/Cache/LRUCache.js) - * [Memoize](https://github.com/TheAlgorithms/Javascript/blob/master/Cache/Memoize.js) - * test - * [cacheTest](https://github.com/TheAlgorithms/Javascript/blob/master/Cache/test/cacheTest.js) - -## Cellular-Automata - * [ConwaysGameOfLife](https://github.com/TheAlgorithms/Javascript/blob/master/Cellular-Automata/ConwaysGameOfLife.js) - -## Ciphers - * [Atbash](https://github.com/TheAlgorithms/Javascript/blob/master/Ciphers/Atbash.js) - * [CaesarsCipher](https://github.com/TheAlgorithms/Javascript/blob/master/Ciphers/CaesarsCipher.js) - * [KeyFinder](https://github.com/TheAlgorithms/Javascript/blob/master/Ciphers/KeyFinder.js) - * [KeywordShiftedAlphabet](https://github.com/TheAlgorithms/Javascript/blob/master/Ciphers/KeywordShiftedAlphabet.js) - * [ROT13](https://github.com/TheAlgorithms/Javascript/blob/master/Ciphers/ROT13.js) - * [VigenereCipher](https://github.com/TheAlgorithms/Javascript/blob/master/Ciphers/VigenereCipher.js) - * [XORCipher](https://github.com/TheAlgorithms/Javascript/blob/master/Ciphers/XORCipher.js) - -## Conversions - * [ArbitraryBase](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/ArbitraryBase.js) - * [ArrayBufferToBase64](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/ArrayBufferToBase64.js) - * [Base64ToArrayBuffer](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/Base64ToArrayBuffer.js) - * [BinaryToDecimal](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/BinaryToDecimal.js) - * [BinaryToHex](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/BinaryToHex.js) - * [DateDayDifference](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/DateDayDifference.js) - * [DateToDay](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/DateToDay.js) - * [DecimalToBinary](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/DecimalToBinary.js) - * [DecimalToHex](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/DecimalToHex.js) - * [DecimalToOctal](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/DecimalToOctal.js) - * [DecimalToRoman](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/DecimalToRoman.js) - * [HexToBinary](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/HexToBinary.js) - * [HexToDecimal](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/HexToDecimal.js) - * [HexToRGB](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/HexToRGB.js) - * [LowerCaseConversion](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/LowerCaseConversion.js) - * [MeterToFeetConversion](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/MeterToFeetConversion.js) - * [OctToDecimal](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/OctToDecimal.js) - * [RailwayTimeConversion](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/RailwayTimeConversion.js) - * [RgbHsvConversion](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/RgbHsvConversion.js) - * [RGBToHex](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/RGBToHex.js) - * [RomanToDecimal](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/RomanToDecimal.js) - * [TemperatureConversion](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/TemperatureConversion.js) - * [TitleCaseConversion](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/TitleCaseConversion.js) - * [UpperCaseConversion](https://github.com/TheAlgorithms/Javascript/blob/master/Conversions/UpperCaseConversion.js) - -## Data-Structures - * Array - * [LocalMaximomPoint](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Array/LocalMaximomPoint.js) - * [NumberOfLocalMaximumPoints](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Array/NumberOfLocalMaximumPoints.js) - * [QuickSelect](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Array/QuickSelect.js) - * Graph - * [Graph](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Graph/Graph.js) - * [Graph2](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Graph/Graph2.js) - * [Graph3](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Graph/Graph3.js) - * Heap - * [MaxHeap](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Heap/MaxHeap.js) - * [MinHeap](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Heap/MinHeap.js) - * [MinPriorityQueue](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Heap/MinPriorityQueue.js) - * Linked-List - * [AddTwoNumbers](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Linked-List/AddTwoNumbers.js) - * [CycleDetection](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Linked-List/CycleDetection.js) - * [DoublyLinkedList](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Linked-List/DoublyLinkedList.js) - * [RotateListRight](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Linked-List/RotateListRight.js) - * [SinglyCircularLinkedList](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Linked-List/SinglyCircularLinkedList.js) - * [SinglyLinkedList](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Linked-List/SinglyLinkedList.js) - * Queue - * [CircularQueue](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Queue/CircularQueue.js) - * [Queue](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Queue/Queue.js) - * [QueueUsing2Stacks](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Queue/QueueUsing2Stacks.js) - * Stack - * [Stack](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Stack/Stack.js) - * [StackES6](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Stack/StackES6.js) - * Tree - * [AVLTree](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Tree/AVLTree.js) - * [BinarySearchTree](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Tree/BinarySearchTree.js) - * [Trie](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Tree/Trie.js) - * Vectors - * [Vector2](https://github.com/TheAlgorithms/Javascript/blob/master/Data-Structures/Vectors/Vector2.js) - -## Dynamic-Programming - * [ClimbingStairs](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/ClimbingStairs.js) - * [CoinChange](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/CoinChange.js) - * [EditDistance](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/EditDistance.js) - * [FibonacciNumber](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/FibonacciNumber.js) - * [FindMonthCalendar](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/FindMonthCalendar.js) - * [KadaneAlgo](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/KadaneAlgo.js) - * [LevenshteinDistance](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/LevenshteinDistance.js) - * [LongestCommonSubsequence](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/LongestCommonSubsequence.js) - * [LongestIncreasingSubsequence](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/LongestIncreasingSubsequence.js) - * [LongestPalindromicSubsequence](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/LongestPalindromicSubsequence.js) - * [LongestValidParentheses](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/LongestValidParentheses.js) - * [MaxNonAdjacentSum](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/MaxNonAdjacentSum.js) - * [MaxProductOfThree](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/MaxProductOfThree.js) - * [MinimumCostPath](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/MinimumCostPath.js) - * [NumberOfSubsetEqualToGivenSum](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/NumberOfSubsetEqualToGivenSum.js) - * [RodCutting](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/RodCutting.js) - * [Shuf](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/Shuf.js) - * [SieveOfEratosthenes](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/SieveOfEratosthenes.js) - * Sliding-Window - * [LongestSubstringWithoutRepeatingCharacters](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/Sliding-Window/LongestSubstringWithoutRepeatingCharacters.js) - * [PermutationinString](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/Sliding-Window/PermutationinString.js) - * [SudokuSolver](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/SudokuSolver.js) - * [TrappingRainWater](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/TrappingRainWater.js) - * [TribonacciNumber](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/TribonacciNumber.js) - * [ZeroOneKnapsack](https://github.com/TheAlgorithms/Javascript/blob/master/Dynamic-Programming/ZeroOneKnapsack.js) - -## Geometry - * [ConvexHullGraham](https://github.com/TheAlgorithms/Javascript/blob/master/Geometry/ConvexHullGraham.js) - -## Graphs - * [BellmanFord](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/BellmanFord.js) - * [BreadthFirstSearch](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/BreadthFirstSearch.js) - * [BreadthFirstShortestPath](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/BreadthFirstShortestPath.js) - * [ConnectedComponents](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/ConnectedComponents.js) - * [Density](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/Density.js) - * [DepthFirstSearchIterative](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/DepthFirstSearchIterative.js) - * [DepthFirstSearchRecursive](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/DepthFirstSearchRecursive.js) - * [Dijkstra](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/Dijkstra.js) - * [DijkstraSmallestPath](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/DijkstraSmallestPath.js) - * [FloydWarshall](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/FloydWarshall.js) - * [KruskalMST](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/KruskalMST.js) - * [NodeNeighbors](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/NodeNeighbors.js) - * [NumberOfIslands](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/NumberOfIslands.js) - * [PrimMST](https://github.com/TheAlgorithms/Javascript/blob/master/Graphs/PrimMST.js) - -## Hashes - * [SHA1](https://github.com/TheAlgorithms/Javascript/blob/master/Hashes/SHA1.js) - * [SHA256](https://github.com/TheAlgorithms/Javascript/blob/master/Hashes/SHA256.js) - -## Maths - * [Abs](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Abs.js) - * [AliquotSum](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/AliquotSum.js) - * [Area](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Area.js) - * [ArithmeticGeometricMean](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/ArithmeticGeometricMean.js) - * [ArmstrongNumber](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/ArmstrongNumber.js) - * [AverageMean](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/AverageMean.js) - * [AverageMedian](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/AverageMedian.js) - * [BinaryConvert](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/BinaryConvert.js) - * [BinaryExponentiationIterative](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/BinaryExponentiationIterative.js) - * [BinaryExponentiationRecursive](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/BinaryExponentiationRecursive.js) - * [BisectionMethod](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/BisectionMethod.js) - * [CheckKishnamurthyNumber](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/CheckKishnamurthyNumber.js) - * [Coordinate](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Coordinate.js) - * [CoPrimeCheck](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/CoPrimeCheck.js) - * [DecimalExpansion](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/DecimalExpansion.js) - * [DecimalIsolate](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/DecimalIsolate.js) - * [DegreeToRadian](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/DegreeToRadian.js) - * [EulerMethod](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/EulerMethod.js) - * [EulersTotient](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/EulersTotient.js) - * [EulersTotientFunction](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/EulersTotientFunction.js) - * [ExtendedEuclideanGCD](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/ExtendedEuclideanGCD.js) - * [Factorial](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Factorial.js) - * [Factors](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Factors.js) - * [FareyApproximation](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/FareyApproximation.js) - * [FermatPrimalityTest](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/FermatPrimalityTest.js) - * [Fibonacci](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Fibonacci.js) - * [FigurateNumber](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/FigurateNumber.js) - * [FindHcf](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/FindHcf.js) - * [FindLcm](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/FindLcm.js) - * [FindMin](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/FindMin.js) - * [FindMinIterator](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/FindMinIterator.js) - * [GetEuclidGCD](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/GetEuclidGCD.js) - * [GridGet](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/GridGet.js) - * [IsDivisible](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/IsDivisible.js) - * [IsEven](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/IsEven.js) - * [IsOdd](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/IsOdd.js) - * [LeapYear](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/LeapYear.js) - * [LinearSieve](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/LinearSieve.js) - * [LucasSeries](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/LucasSeries.js) - * [Mandelbrot](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Mandelbrot.js) - * [MatrixExponentiationRecursive](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/MatrixExponentiationRecursive.js) - * [MatrixMultiplication](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/MatrixMultiplication.js) - * [MeanSquareError](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/MeanSquareError.js) - * [MidpointIntegration](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/MidpointIntegration.js) - * [ModularBinaryExponentiationRecursive](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/ModularBinaryExponentiationRecursive.js) - * [NumberOfDigits](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/NumberOfDigits.js) - * [Palindrome](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Palindrome.js) - * [PascalTriangle](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/PascalTriangle.js) - * [PerfectCube](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/PerfectCube.js) - * [PerfectNumber](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/PerfectNumber.js) - * [PerfectSquare](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/PerfectSquare.js) - * [PermutationAndCombination](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/PermutationAndCombination.js) - * [PiApproximationMonteCarlo](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/PiApproximationMonteCarlo.js) - * [Polynomial](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Polynomial.js) - * [Pow](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Pow.js) - * [PowLogarithmic](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/PowLogarithmic.js) - * [PrimeCheck](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/PrimeCheck.js) - * [PrimeFactors](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/PrimeFactors.js) - * [RadianToDegree](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/RadianToDegree.js) - * [ReverseNumber](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/ReverseNumber.js) - * [ReversePolishNotation](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/ReversePolishNotation.js) - * [SieveOfEratosthenes](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/SieveOfEratosthenes.js) - * [SimpsonIntegration](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/SimpsonIntegration.js) - * [Softmax](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Softmax.js) - * [SquareRoot](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/SquareRoot.js) - * [SumOfDigits](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/SumOfDigits.js) - * [SumOfGeometricProgression](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/SumOfGeometricProgression.js) - * [Volume](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/Volume.js) - * [WhileLoopFactorial](https://github.com/TheAlgorithms/Javascript/blob/master/Maths/WhileLoopFactorial.js) - -## Navigation - * [Haversine](https://github.com/TheAlgorithms/Javascript/blob/master/Navigation/Haversine.js) - -## Project-Euler - * [Problem001](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem001.js) - * [Problem002](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem002.js) - * [Problem003](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem003.js) - * [Problem004](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem004.js) - * [Problem005](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem005.js) - * [Problem006](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem006.js) - * [Problem008](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem008.js) - * [Problem009](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem009.js) - * [Problem010](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem010.js) - * [Problem012](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem012.js) - * [Problem014](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem014.js) - * [Problem015](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem015.js) - * [Problem016](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem016.js) - * [Problem018](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem018.js) - * [Problem020](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem020.js) - * [Problem023](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem023.js) - * [Problem025](https://github.com/TheAlgorithms/Javascript/blob/master/Project-Euler/Problem025.js) - -## Recursive - * [BinaryEquivalent](https://github.com/TheAlgorithms/Javascript/blob/master/Recursive/BinaryEquivalent.js) - * [BinarySearch](https://github.com/TheAlgorithms/Javascript/blob/master/Recursive/BinarySearch.js) - * [EucledianGCD](https://github.com/TheAlgorithms/Javascript/blob/master/Recursive/EucledianGCD.js) - * [Factorial](https://github.com/TheAlgorithms/Javascript/blob/master/Recursive/Factorial.js) - * [FibonacciNumberRecursive](https://github.com/TheAlgorithms/Javascript/blob/master/Recursive/FibonacciNumberRecursive.js) - * [FloodFill](https://github.com/TheAlgorithms/Javascript/blob/master/Recursive/FloodFill.js) - * [KochSnowflake](https://github.com/TheAlgorithms/Javascript/blob/master/Recursive/KochSnowflake.js) - * [Palindrome](https://github.com/TheAlgorithms/Javascript/blob/master/Recursive/Palindrome.js) - * [SubsequenceRecursive](https://github.com/TheAlgorithms/Javascript/blob/master/Recursive/SubsequenceRecursive.js) - * [TowerOfHanoi](https://github.com/TheAlgorithms/Javascript/blob/master/Recursive/TowerOfHanoi.js) - -## Search - * [BinarySearch](https://github.com/TheAlgorithms/Javascript/blob/master/Search/BinarySearch.js) - * [ExponentialSearch](https://github.com/TheAlgorithms/Javascript/blob/master/Search/ExponentialSearch.js) - * [FibonacciSearch](https://github.com/TheAlgorithms/Javascript/blob/master/Search/FibonacciSearch.js) - * [InterpolationSearch](https://github.com/TheAlgorithms/Javascript/blob/master/Search/InterpolationSearch.js) - * [JumpSearch](https://github.com/TheAlgorithms/Javascript/blob/master/Search/JumpSearch.js) - * [LinearSearch](https://github.com/TheAlgorithms/Javascript/blob/master/Search/LinearSearch.js) - * [QuickSelectSearch](https://github.com/TheAlgorithms/Javascript/blob/master/Search/QuickSelectSearch.js) - * [SlidingWindow](https://github.com/TheAlgorithms/Javascript/blob/master/Search/SlidingWindow.js) - * [StringSearch](https://github.com/TheAlgorithms/Javascript/blob/master/Search/StringSearch.js) - * [TernarySearch](https://github.com/TheAlgorithms/Javascript/blob/master/Search/TernarySearch.js) - * [UnionFind](https://github.com/TheAlgorithms/Javascript/blob/master/Search/UnionFind.js) - -## Sorts - * [AlphaNumericalSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/AlphaNumericalSort.js) - * [BeadSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/BeadSort.js) - * [BogoSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/BogoSort.js) - * [BubbleSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/BubbleSort.js) - * [BucketSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/BucketSort.js) - * [CocktailShakerSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/CocktailShakerSort.js) - * [CombSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/CombSort.js) - * [CountingSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/CountingSort.js) - * [CycleSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/CycleSort.js) - * [FindSecondLargestElement](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/FindSecondLargestElement.js) - * [FisherYatesShuffle](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/FisherYatesShuffle.js) - * [FlashSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/FlashSort.js) - * [GnomeSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/GnomeSort.js) - * [HeapSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/HeapSort.js) - * [HeapSortV2](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/HeapSortV2.js) - * [InsertionSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/InsertionSort.js) - * [IntroSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/IntroSort.js) - * [MergeSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/MergeSort.js) - * [OddEvenSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/OddEvenSort.js) - * [PancakeSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/PancakeSort.js) - * [PigeonHoleSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/PigeonHoleSort.js) - * [QuickSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/QuickSort.js) - * [QuickSortRecursive](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/QuickSortRecursive.js) - * [RadixSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/RadixSort.js) - * [SelectionSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/SelectionSort.js) - * [ShellSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/ShellSort.js) - * [TimSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/TimSort.js) - * [TopologicalSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/TopologicalSort.js) - * [WiggleSort](https://github.com/TheAlgorithms/Javascript/blob/master/Sorts/WiggleSort.js) - -## String - * [AlphaNumericPalindrome](https://github.com/TheAlgorithms/Javascript/blob/master/String/AlphaNumericPalindrome.js) - * [AlternativeStringArrange](https://github.com/TheAlgorithms/Javascript/blob/master/String/AlternativeStringArrange.js) - * [BoyerMoore](https://github.com/TheAlgorithms/Javascript/blob/master/String/BoyerMoore.js) - * [CheckAnagram](https://github.com/TheAlgorithms/Javascript/blob/master/String/CheckAnagram.js) - * [CheckCamelCase](https://github.com/TheAlgorithms/Javascript/blob/master/String/CheckCamelCase.js) - * [CheckExceeding](https://github.com/TheAlgorithms/Javascript/blob/master/String/CheckExceeding.js) - * [CheckFlatCase](https://github.com/TheAlgorithms/Javascript/blob/master/String/CheckFlatCase.js) - * [CheckKebabCase](https://github.com/TheAlgorithms/Javascript/blob/master/String/CheckKebabCase.js) - * [CheckPalindrome](https://github.com/TheAlgorithms/Javascript/blob/master/String/CheckPalindrome.js) - * [CheckPangram](https://github.com/TheAlgorithms/Javascript/blob/master/String/CheckPangram.js) - * [CheckPascalCase](https://github.com/TheAlgorithms/Javascript/blob/master/String/CheckPascalCase.js) - * [CheckRearrangePalindrome](https://github.com/TheAlgorithms/Javascript/blob/master/String/CheckRearrangePalindrome.js) - * [CheckSnakeCase](https://github.com/TheAlgorithms/Javascript/blob/master/String/CheckSnakeCase.js) - * [CheckWordOccurrence](https://github.com/TheAlgorithms/Javascript/blob/master/String/CheckWordOccurrence.js) - * [CountVowels](https://github.com/TheAlgorithms/Javascript/blob/master/String/CountVowels.js) - * [CreatePermutations](https://github.com/TheAlgorithms/Javascript/blob/master/String/CreatePermutations.js) - * [DiceCoefficient](https://github.com/TheAlgorithms/Javascript/blob/master/String/DiceCoefficient.js) - * [FormatPhoneNumber](https://github.com/TheAlgorithms/Javascript/blob/master/String/FormatPhoneNumber.js) - * [GenerateGUID](https://github.com/TheAlgorithms/Javascript/blob/master/String/GenerateGUID.js) - * [HammingDistance](https://github.com/TheAlgorithms/Javascript/blob/master/String/HammingDistance.js) - * [KMPPatternSearching](https://github.com/TheAlgorithms/Javascript/blob/master/String/KMPPatternSearching.js) - * [LevenshteinDistance](https://github.com/TheAlgorithms/Javascript/blob/master/String/LevenshteinDistance.js) - * [Lower](https://github.com/TheAlgorithms/Javascript/blob/master/String/Lower.js) - * [MaxCharacter](https://github.com/TheAlgorithms/Javascript/blob/master/String/MaxCharacter.js) - * [MaxWord](https://github.com/TheAlgorithms/Javascript/blob/master/String/MaxWord.js) - * [PatternMatching](https://github.com/TheAlgorithms/Javascript/blob/master/String/PatternMatching.js) - * [PermutateString](https://github.com/TheAlgorithms/Javascript/blob/master/String/PermutateString.js) - * [ReverseString](https://github.com/TheAlgorithms/Javascript/blob/master/String/ReverseString.js) - * [ReverseWords](https://github.com/TheAlgorithms/Javascript/blob/master/String/ReverseWords.js) - * [ScrambleStrings](https://github.com/TheAlgorithms/Javascript/blob/master/String/ScrambleStrings.js) - * [Upper](https://github.com/TheAlgorithms/Javascript/blob/master/String/Upper.js) - * [ValidateCreditCard](https://github.com/TheAlgorithms/Javascript/blob/master/String/ValidateCreditCard.js) - * [ValidateEmail](https://github.com/TheAlgorithms/Javascript/blob/master/String/ValidateEmail.js) - * [ValidateUrl](https://github.com/TheAlgorithms/Javascript/blob/master/String/ValidateUrl.js) - -## Timing-Functions - * [GetMonthDays](https://github.com/TheAlgorithms/Javascript/blob/master/Timing-Functions/GetMonthDays.js) - * [IntervalTimer](https://github.com/TheAlgorithms/Javascript/blob/master/Timing-Functions/IntervalTimer.js) - -## Trees - * [BreadthFirstTreeTraversal](https://github.com/TheAlgorithms/Javascript/blob/master/Trees/BreadthFirstTreeTraversal.js) - * [DepthFirstSearch](https://github.com/TheAlgorithms/Javascript/blob/master/Trees/DepthFirstSearch.js) - * [FenwickTree](https://github.com/TheAlgorithms/Javascript/blob/master/Trees/FenwickTree.js) +* **Backtracking** + * [AllCombinationsOfSizeK](Backtracking/AllCombinationsOfSizeK.js) + * [GeneratePermutations](Backtracking/GeneratePermutations.js) + * [KnightTour](Backtracking/KnightTour.js) + * [NQueen](Backtracking/NQueen.js) + * [RatInAMaze](Backtracking/RatInAMaze.js) + * [Sudoku](Backtracking/Sudoku.js) + * [SumOfSubset](Backtracking/SumOfSubset.js) +* **Bit-Manipulation** + * [BinaryCountSetBits](Bit-Manipulation/BinaryCountSetBits.js) + * [IsPowerOfTwo](Bit-Manipulation/IsPowerOfTwo.js) + * [NextPowerOfTwo](Bit-Manipulation/NextPowerOfTwo.js) + * [SetBit](Bit-Manipulation/SetBit.js) +* **Cache** + * [LFUCache](Cache/LFUCache.js) + * [LRUCache](Cache/LRUCache.js) + * [Memoize](Cache/Memoize.js) +* **Cellular-Automata** + * [ConwaysGameOfLife](Cellular-Automata/ConwaysGameOfLife.js) +* **Ciphers** + * [Atbash](Ciphers/Atbash.js) + * [CaesarsCipher](Ciphers/CaesarsCipher.js) + * [KeyFinder](Ciphers/KeyFinder.js) + * [KeywordShiftedAlphabet](Ciphers/KeywordShiftedAlphabet.js) + * [ROT13](Ciphers/ROT13.js) + * [VigenereCipher](Ciphers/VigenereCipher.js) + * [XORCipher](Ciphers/XORCipher.js) +* **Conversions** + * [ArbitraryBase](Conversions/ArbitraryBase.js) + * [ArrayBufferToBase64](Conversions/ArrayBufferToBase64.js) + * [Base64ToArrayBuffer](Conversions/Base64ToArrayBuffer.js) + * [BinaryToDecimal](Conversions/BinaryToDecimal.js) + * [BinaryToHex](Conversions/BinaryToHex.js) + * [DateDayDifference](Conversions/DateDayDifference.js) + * [DateToDay](Conversions/DateToDay.js) + * [DecimalToBinary](Conversions/DecimalToBinary.js) + * [DecimalToHex](Conversions/DecimalToHex.js) + * [DecimalToOctal](Conversions/DecimalToOctal.js) + * [DecimalToRoman](Conversions/DecimalToRoman.js) + * [HexToBinary](Conversions/HexToBinary.js) + * [HexToDecimal](Conversions/HexToDecimal.js) + * [HexToRGB](Conversions/HexToRGB.js) + * [LowerCaseConversion](Conversions/LowerCaseConversion.js) + * [MeterToFeetConversion](Conversions/MeterToFeetConversion.js) + * [OctToDecimal](Conversions/OctToDecimal.js) + * [RailwayTimeConversion](Conversions/RailwayTimeConversion.js) + * [RgbHsvConversion](Conversions/RgbHsvConversion.js) + * [RGBToHex](Conversions/RGBToHex.js) + * [RomanToDecimal](Conversions/RomanToDecimal.js) + * [TemperatureConversion](Conversions/TemperatureConversion.js) + * [TitleCaseConversion](Conversions/TitleCaseConversion.js) + * [UpperCaseConversion](Conversions/UpperCaseConversion.js) +* **Data-Structures** + * **Array** + * [LocalMaximomPoint](Data-Structures/Array/LocalMaximomPoint.js) + * [NumberOfLocalMaximumPoints](Data-Structures/Array/NumberOfLocalMaximumPoints.js) + * [QuickSelect](Data-Structures/Array/QuickSelect.js) + * **Graph** + * [Graph](Data-Structures/Graph/Graph.js) + * [Graph2](Data-Structures/Graph/Graph2.js) + * [Graph3](Data-Structures/Graph/Graph3.js) + * **Heap** + * [MaxHeap](Data-Structures/Heap/MaxHeap.js) + * [MinHeap](Data-Structures/Heap/MinHeap.js) + * [MinPriorityQueue](Data-Structures/Heap/MinPriorityQueue.js) + * **Linked-List** + * [AddTwoNumbers](Data-Structures/Linked-List/AddTwoNumbers.js) + * [CycleDetection](Data-Structures/Linked-List/CycleDetection.js) + * [DoublyLinkedList](Data-Structures/Linked-List/DoublyLinkedList.js) + * [RotateListRight](Data-Structures/Linked-List/RotateListRight.js) + * [SinglyCircularLinkedList](Data-Structures/Linked-List/SinglyCircularLinkedList.js) + * [SinglyLinkedList](Data-Structures/Linked-List/SinglyLinkedList.js) + * **Queue** + * [CircularQueue](Data-Structures/Queue/CircularQueue.js) + * [Queue](Data-Structures/Queue/Queue.js) + * [QueueUsing2Stacks](Data-Structures/Queue/QueueUsing2Stacks.js) + * **Stack** + * [Stack](Data-Structures/Stack/Stack.js) + * [StackES6](Data-Structures/Stack/StackES6.js) + * **Tree** + * [AVLTree](Data-Structures/Tree/AVLTree.js) + * [BinarySearchTree](Data-Structures/Tree/BinarySearchTree.js) + * [Trie](Data-Structures/Tree/Trie.js) + * **Vectors** + * [Vector2](Data-Structures/Vectors/Vector2.js) +* **Dynamic-Programming** + * [ClimbingStairs](Dynamic-Programming/ClimbingStairs.js) + * [CoinChange](Dynamic-Programming/CoinChange.js) + * [EditDistance](Dynamic-Programming/EditDistance.js) + * [FibonacciNumber](Dynamic-Programming/FibonacciNumber.js) + * [FindMonthCalendar](Dynamic-Programming/FindMonthCalendar.js) + * [KadaneAlgo](Dynamic-Programming/KadaneAlgo.js) + * [LevenshteinDistance](Dynamic-Programming/LevenshteinDistance.js) + * [LongestCommonSubsequence](Dynamic-Programming/LongestCommonSubsequence.js) + * [LongestIncreasingSubsequence](Dynamic-Programming/LongestIncreasingSubsequence.js) + * [LongestPalindromicSubsequence](Dynamic-Programming/LongestPalindromicSubsequence.js) + * [LongestValidParentheses](Dynamic-Programming/LongestValidParentheses.js) + * [MaxNonAdjacentSum](Dynamic-Programming/MaxNonAdjacentSum.js) + * [MaxProductOfThree](Dynamic-Programming/MaxProductOfThree.js) + * [MinimumCostPath](Dynamic-Programming/MinimumCostPath.js) + * [NumberOfSubsetEqualToGivenSum](Dynamic-Programming/NumberOfSubsetEqualToGivenSum.js) + * [RodCutting](Dynamic-Programming/RodCutting.js) + * [Shuf](Dynamic-Programming/Shuf.js) + * [SieveOfEratosthenes](Dynamic-Programming/SieveOfEratosthenes.js) + * **Sliding-Window** + * [LongestSubstringWithoutRepeatingCharacters](Dynamic-Programming/Sliding-Window/LongestSubstringWithoutRepeatingCharacters.js) + * [PermutationinString](Dynamic-Programming/Sliding-Window/PermutationinString.js) + * [SudokuSolver](Dynamic-Programming/SudokuSolver.js) + * [TrappingRainWater](Dynamic-Programming/TrappingRainWater.js) + * [TribonacciNumber](Dynamic-Programming/TribonacciNumber.js) + * [ZeroOneKnapsack](Dynamic-Programming/ZeroOneKnapsack.js) +* **Geometry** + * [ConvexHullGraham](Geometry/ConvexHullGraham.js) +* **Graphs** + * [BellmanFord](Graphs/BellmanFord.js) + * [BreadthFirstSearch](Graphs/BreadthFirstSearch.js) + * [BreadthFirstShortestPath](Graphs/BreadthFirstShortestPath.js) + * [ConnectedComponents](Graphs/ConnectedComponents.js) + * [Density](Graphs/Density.js) + * [DepthFirstSearchIterative](Graphs/DepthFirstSearchIterative.js) + * [DepthFirstSearchRecursive](Graphs/DepthFirstSearchRecursive.js) + * [Dijkstra](Graphs/Dijkstra.js) + * [DijkstraSmallestPath](Graphs/DijkstraSmallestPath.js) + * [FloydWarshall](Graphs/FloydWarshall.js) + * [KruskalMST](Graphs/KruskalMST.js) + * [NodeNeighbors](Graphs/NodeNeighbors.js) + * [NumberOfIslands](Graphs/NumberOfIslands.js) + * [PrimMST](Graphs/PrimMST.js) +* **Hashes** + * [SHA1](Hashes/SHA1.js) + * [SHA256](Hashes/SHA256.js) +* **Maths** + * [Abs](Maths/Abs.js) + * [AliquotSum](Maths/AliquotSum.js) + * [Area](Maths/Area.js) + * [ArithmeticGeometricMean](Maths/ArithmeticGeometricMean.js) + * [ArmstrongNumber](Maths/ArmstrongNumber.js) + * [AverageMean](Maths/AverageMean.js) + * [AverageMedian](Maths/AverageMedian.js) + * [BinaryConvert](Maths/BinaryConvert.js) + * [BinaryExponentiationIterative](Maths/BinaryExponentiationIterative.js) + * [BinaryExponentiationRecursive](Maths/BinaryExponentiationRecursive.js) + * [BisectionMethod](Maths/BisectionMethod.js) + * [CheckKishnamurthyNumber](Maths/CheckKishnamurthyNumber.js) + * [Coordinate](Maths/Coordinate.js) + * [CoPrimeCheck](Maths/CoPrimeCheck.js) + * [DecimalExpansion](Maths/DecimalExpansion.js) + * [DecimalIsolate](Maths/DecimalIsolate.js) + * [DegreeToRadian](Maths/DegreeToRadian.js) + * [EulerMethod](Maths/EulerMethod.js) + * [EulersTotient](Maths/EulersTotient.js) + * [EulersTotientFunction](Maths/EulersTotientFunction.js) + * [ExtendedEuclideanGCD](Maths/ExtendedEuclideanGCD.js) + * [Factorial](Maths/Factorial.js) + * [Factors](Maths/Factors.js) + * [FareyApproximation](Maths/FareyApproximation.js) + * [FermatPrimalityTest](Maths/FermatPrimalityTest.js) + * [Fibonacci](Maths/Fibonacci.js) + * [FigurateNumber](Maths/FigurateNumber.js) + * [FindHcf](Maths/FindHcf.js) + * [FindLcm](Maths/FindLcm.js) + * [FindMin](Maths/FindMin.js) + * [FindMinIterator](Maths/FindMinIterator.js) + * [GetEuclidGCD](Maths/GetEuclidGCD.js) + * [GridGet](Maths/GridGet.js) + * [IsDivisible](Maths/IsDivisible.js) + * [IsEven](Maths/IsEven.js) + * [IsOdd](Maths/IsOdd.js) + * [LeapYear](Maths/LeapYear.js) + * [LinearSieve](Maths/LinearSieve.js) + * [LucasSeries](Maths/LucasSeries.js) + * [Mandelbrot](Maths/Mandelbrot.js) + * [MatrixExponentiationRecursive](Maths/MatrixExponentiationRecursive.js) + * [MatrixMultiplication](Maths/MatrixMultiplication.js) + * [MeanSquareError](Maths/MeanSquareError.js) + * [MidpointIntegration](Maths/MidpointIntegration.js) + * [ModularBinaryExponentiationRecursive](Maths/ModularBinaryExponentiationRecursive.js) + * [NumberOfDigits](Maths/NumberOfDigits.js) + * [Palindrome](Maths/Palindrome.js) + * [PascalTriangle](Maths/PascalTriangle.js) + * [PerfectCube](Maths/PerfectCube.js) + * [PerfectNumber](Maths/PerfectNumber.js) + * [PerfectSquare](Maths/PerfectSquare.js) + * [PermutationAndCombination](Maths/PermutationAndCombination.js) + * [PiApproximationMonteCarlo](Maths/PiApproximationMonteCarlo.js) + * [Polynomial](Maths/Polynomial.js) + * [Pow](Maths/Pow.js) + * [PowLogarithmic](Maths/PowLogarithmic.js) + * [PrimeCheck](Maths/PrimeCheck.js) + * [PrimeFactors](Maths/PrimeFactors.js) + * [RadianToDegree](Maths/RadianToDegree.js) + * [ReverseNumber](Maths/ReverseNumber.js) + * [ReversePolishNotation](Maths/ReversePolishNotation.js) + * [SieveOfEratosthenes](Maths/SieveOfEratosthenes.js) + * [SimpsonIntegration](Maths/SimpsonIntegration.js) + * [Softmax](Maths/Softmax.js) + * [SquareRoot](Maths/SquareRoot.js) + * [SumOfDigits](Maths/SumOfDigits.js) + * [SumOfGeometricProgression](Maths/SumOfGeometricProgression.js) + * [Volume](Maths/Volume.js) + * [WhileLoopFactorial](Maths/WhileLoopFactorial.js) + * [ZellersCongruenceAlgorithm](Maths/ZellersCongruenceAlgorithm.js) +* **Navigation** + * [Haversine](Navigation/Haversine.js) +* **Project-Euler** + * [Problem001](Project-Euler/Problem001.js) + * [Problem002](Project-Euler/Problem002.js) + * [Problem003](Project-Euler/Problem003.js) + * [Problem004](Project-Euler/Problem004.js) + * [Problem005](Project-Euler/Problem005.js) + * [Problem006](Project-Euler/Problem006.js) + * [Problem008](Project-Euler/Problem008.js) + * [Problem009](Project-Euler/Problem009.js) + * [Problem010](Project-Euler/Problem010.js) + * [Problem012](Project-Euler/Problem012.js) + * [Problem014](Project-Euler/Problem014.js) + * [Problem015](Project-Euler/Problem015.js) + * [Problem016](Project-Euler/Problem016.js) + * [Problem018](Project-Euler/Problem018.js) + * [Problem020](Project-Euler/Problem020.js) + * [Problem023](Project-Euler/Problem023.js) + * [Problem025](Project-Euler/Problem025.js) +* **Recursive** + * [BinaryEquivalent](Recursive/BinaryEquivalent.js) + * [BinarySearch](Recursive/BinarySearch.js) + * [EucledianGCD](Recursive/EucledianGCD.js) + * [Factorial](Recursive/Factorial.js) + * [FibonacciNumberRecursive](Recursive/FibonacciNumberRecursive.js) + * [FloodFill](Recursive/FloodFill.js) + * [KochSnowflake](Recursive/KochSnowflake.js) + * [Palindrome](Recursive/Palindrome.js) + * [SubsequenceRecursive](Recursive/SubsequenceRecursive.js) + * [TowerOfHanoi](Recursive/TowerOfHanoi.js) +* **Search** + * [BinarySearch](Search/BinarySearch.js) + * [ExponentialSearch](Search/ExponentialSearch.js) + * [FibonacciSearch](Search/FibonacciSearch.js) + * [InterpolationSearch](Search/InterpolationSearch.js) + * [JumpSearch](Search/JumpSearch.js) + * [LinearSearch](Search/LinearSearch.js) + * [QuickSelectSearch](Search/QuickSelectSearch.js) + * [SlidingWindow](Search/SlidingWindow.js) + * [StringSearch](Search/StringSearch.js) + * [TernarySearch](Search/TernarySearch.js) + * [UnionFind](Search/UnionFind.js) +* **Sorts** + * [AlphaNumericalSort](Sorts/AlphaNumericalSort.js) + * [BeadSort](Sorts/BeadSort.js) + * [BogoSort](Sorts/BogoSort.js) + * [BubbleSort](Sorts/BubbleSort.js) + * [BucketSort](Sorts/BucketSort.js) + * [CocktailShakerSort](Sorts/CocktailShakerSort.js) + * [CombSort](Sorts/CombSort.js) + * [CountingSort](Sorts/CountingSort.js) + * [CycleSort](Sorts/CycleSort.js) + * [FindSecondLargestElement](Sorts/FindSecondLargestElement.js) + * [FisherYatesShuffle](Sorts/FisherYatesShuffle.js) + * [FlashSort](Sorts/FlashSort.js) + * [GnomeSort](Sorts/GnomeSort.js) + * [HeapSort](Sorts/HeapSort.js) + * [HeapSortV2](Sorts/HeapSortV2.js) + * [InsertionSort](Sorts/InsertionSort.js) + * [IntroSort](Sorts/IntroSort.js) + * [MergeSort](Sorts/MergeSort.js) + * [OddEvenSort](Sorts/OddEvenSort.js) + * [PancakeSort](Sorts/PancakeSort.js) + * [PigeonHoleSort](Sorts/PigeonHoleSort.js) + * [QuickSort](Sorts/QuickSort.js) + * [QuickSortRecursive](Sorts/QuickSortRecursive.js) + * [RadixSort](Sorts/RadixSort.js) + * [SelectionSort](Sorts/SelectionSort.js) + * [ShellSort](Sorts/ShellSort.js) + * [SimplifiedWiggleSort](Sorts/SimplifiedWiggleSort.js) + * [StoogeSort](Sorts/StoogeSort.js) + * [TimSort](Sorts/TimSort.js) + * [TopologicalSort](Sorts/TopologicalSort.js) +* **String** + * [AlphaNumericPalindrome](String/AlphaNumericPalindrome.js) + * [AlternativeStringArrange](String/AlternativeStringArrange.js) + * [BoyerMoore](String/BoyerMoore.js) + * [CheckAnagram](String/CheckAnagram.js) + * [CheckCamelCase](String/CheckCamelCase.js) + * [CheckExceeding](String/CheckExceeding.js) + * [CheckFlatCase](String/CheckFlatCase.js) + * [CheckKebabCase](String/CheckKebabCase.js) + * [CheckPalindrome](String/CheckPalindrome.js) + * [CheckPangram](String/CheckPangram.js) + * [CheckPascalCase](String/CheckPascalCase.js) + * [CheckRearrangePalindrome](String/CheckRearrangePalindrome.js) + * [CheckSnakeCase](String/CheckSnakeCase.js) + * [CheckWordOccurrence](String/CheckWordOccurrence.js) + * [CountVowels](String/CountVowels.js) + * [CreatePermutations](String/CreatePermutations.js) + * [DiceCoefficient](String/DiceCoefficient.js) + * [FormatPhoneNumber](String/FormatPhoneNumber.js) + * [GenerateGUID](String/GenerateGUID.js) + * [HammingDistance](String/HammingDistance.js) + * [KMPPatternSearching](String/KMPPatternSearching.js) + * [LevenshteinDistance](String/LevenshteinDistance.js) + * [Lower](String/Lower.js) + * [MaxCharacter](String/MaxCharacter.js) + * [MaxWord](String/MaxWord.js) + * [PatternMatching](String/PatternMatching.js) + * [PermutateString](String/PermutateString.js) + * [ReverseString](String/ReverseString.js) + * [ReverseWords](String/ReverseWords.js) + * [ScrambleStrings](String/ScrambleStrings.js) + * [Upper](String/Upper.js) + * [ValidateCreditCard](String/ValidateCreditCard.js) + * [ValidateEmail](String/ValidateEmail.js) + * [ValidateUrl](String/ValidateUrl.js) +* **Timing-Functions** + * [GetMonthDays](Timing-Functions/GetMonthDays.js) + * [IntervalTimer](Timing-Functions/IntervalTimer.js) +* **Trees** + * [BreadthFirstTreeTraversal](Trees/BreadthFirstTreeTraversal.js) + * [DepthFirstSearch](Trees/DepthFirstSearch.js) + * [FenwickTree](Trees/FenwickTree.js)