diff --git a/DIRECTORY.md b/DIRECTORY.md index f6691e82e..1e84f973f 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -10,14 +10,13 @@ ## Ciphers * [AES](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/AES.java) * [AESEncryption](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/AESEncryption.java) - * [affineCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/affineCipher.java) * [AffineCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/AffineCipher.java) * [Caesar](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/Caesar.java) * [ColumnarTranspositionCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/ColumnarTranspositionCipher.java) * [HillCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/HillCipher.java) * [ProductCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/ProductCipher.java) * [RSA](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/RSA.java) - * [simpleSubCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/simpleSubCipher.java) + * [SimpleSubCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/SimpleSubCipher.java) * [SimpleSubstitutionCipher](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/SimpleSubstitutionCipher.java) * [Vigenere](https://github.com/TheAlgorithms/Java/blob/master/Ciphers/Vigenere.java) @@ -102,6 +101,7 @@ * Stacks * [BalancedBrackets](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/BalancedBrackets.java) * [DecimalToAnyUsingStack](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/DecimalToAnyUsingStack.java) + * [DuplicateBrackets](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/DuplicateBrackets.java) * [InfixToPostfix](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/InfixToPostfix.java) * [MaximumMinimumWindow](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/MaximumMinimumWindow.java) * [NodeStack](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/NodeStack.java) @@ -116,6 +116,7 @@ * [BSTRecursive](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/BSTRecursive.java) * [BSTRecursiveGeneric](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/BSTRecursiveGeneric.java) * [CeilInBinarySearchTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/CeilInBinarySearchTree.java) + * [CheckIfBinaryTreeBalanced](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/CheckIfBinaryTreeBalanced.java) * [CreateBinaryTreeFromInorderPreorder](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/CreateBinaryTreeFromInorderPreorder.java) * [CreateBSTFromSortedArray](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/CreateBSTFromSortedArray.java) * [FenwickTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/FenwickTree.java) @@ -132,6 +133,16 @@ * [ValidBSTOrNot](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/ValidBSTOrNot.java) * [VerticalOrderTraversal](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/VerticalOrderTraversal.java) +## DevUtils + * Nodes + * [LargeTreeNode](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/LargeTreeNode.java) + * [Node](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/Node.java) + * [SimpleNode](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/SimpleNode.java) + * [SimpleTreeNode](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/SimpleTreeNode.java) + * [TreeNode](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Nodes/TreeNode.java) + * Searches + * [SearchAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/DevUtils/Searches/SearchAlgorithm.java) + ## DivideAndConquer * [BinaryExponentiation](https://github.com/TheAlgorithms/Java/blob/master/DivideAndConquer/BinaryExponentiation.java) * [ClosestPair](https://github.com/TheAlgorithms/Java/blob/master/DivideAndConquer/ClosestPair.java) @@ -153,6 +164,7 @@ * [Knapsack](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/Knapsack.java) * [KnapsackMemoization](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/KnapsackMemoization.java) * [LevenshteinDistance](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LevenshteinDistance.java) + * [LongestAlternatingSubsequence](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestAlternatingSubsequence.java) * [LongestCommonSubsequence](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestCommonSubsequence.java) * [LongestIncreasingSubsequence](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestIncreasingSubsequence.java) * [LongestPalindromicSubsequence](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestPalindromicSubsequence.java) @@ -203,6 +215,7 @@ * [FindMin](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMin.java) * [FindMinRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMinRecursion.java) * [Floor](https://github.com/TheAlgorithms/Java/blob/master/Maths/Floor.java) + * [Gaussian](https://github.com/TheAlgorithms/Java/blob/master/Maths/Gaussian.java) * [GCD](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCD.java) * [GCDRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCDRecursion.java) * [GenericRoot](https://github.com/TheAlgorithms/Java/blob/master/Maths/GenericRoot.java) @@ -210,8 +223,10 @@ * [KeithNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/KeithNumber.java) * [KrishnamurthyNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/KrishnamurthyNumber.java) * [LeonardoNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/LeonardoNumber.java) + * [LinearDiophantineEquationsSolver](https://github.com/TheAlgorithms/Java/blob/master/Maths/LinearDiophantineEquationsSolver.java) * [LucasSeries](https://github.com/TheAlgorithms/Java/blob/master/Maths/LucasSeries.java) * [MagicSquare](https://github.com/TheAlgorithms/Java/blob/master/Maths/MagicSquare.java) + * [MatrixUtil](https://github.com/TheAlgorithms/Java/blob/master/Maths/MatrixUtil.java) * [MaxValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/MaxValue.java) * [Median](https://github.com/TheAlgorithms/Java/blob/master/Maths/Median.java) * [MinValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/MinValue.java) @@ -231,6 +246,7 @@ * [PrimeCheck](https://github.com/TheAlgorithms/Java/blob/master/Maths/PrimeCheck.java) * [PrimeFactorization](https://github.com/TheAlgorithms/Java/blob/master/Maths/PrimeFactorization.java) * [PythagoreanTriple](https://github.com/TheAlgorithms/Java/blob/master/Maths/PythagoreanTriple.java) + * [ReverseNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/ReverseNumber.java) * [RomanNumeralUtil](https://github.com/TheAlgorithms/Java/blob/master/Maths/RomanNumeralUtil.java) * [SimpsonIntegration](https://github.com/TheAlgorithms/Java/blob/master/Maths/SimpsonIntegration.java) * [SumOfArithmeticSeries](https://github.com/TheAlgorithms/Java/blob/master/Maths/SumOfArithmeticSeries.java) @@ -238,6 +254,7 @@ * [TrinomialTriangle](https://github.com/TheAlgorithms/Java/blob/master/Maths/TrinomialTriangle.java) * [VampireNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/VampireNumber.java) * [VectorCrossProduct](https://github.com/TheAlgorithms/Java/blob/master/Maths/VectorCrossProduct.java) + * [Volume](https://github.com/TheAlgorithms/Java/blob/master/Maths/Volume.java) ## MatrixExponentiation * [Fibonacci](https://github.com/TheAlgorithms/Java/blob/master/MatrixExponentiation/Fibonacci.java) @@ -251,12 +268,16 @@ * [matrixTranspose](https://github.com/TheAlgorithms/Java/blob/master/Misc/matrixTranspose.java) * [MedianOfRunningArray](https://github.com/TheAlgorithms/Java/blob/master/Misc/MedianOfRunningArray.java) * [PalindromePrime](https://github.com/TheAlgorithms/Java/blob/master/Misc/PalindromePrime.java) + * [PalindromeSinglyLinkedList](https://github.com/TheAlgorithms/Java/blob/master/Misc/PalindromeSinglyLinkedList.java) * [RangeInSortedArray](https://github.com/TheAlgorithms/Java/blob/master/Misc/RangeInSortedArray.java) + * [Sort012D](https://github.com/TheAlgorithms/Java/blob/master/Misc/Sort012D.java) * [Sparcity](https://github.com/TheAlgorithms/Java/blob/master/Misc/Sparcity.java) + * [ThreeSumProblem](https://github.com/TheAlgorithms/Java/blob/master/Misc/ThreeSumProblem.java) * [TwoSumProblem](https://github.com/TheAlgorithms/Java/blob/master/Misc/TwoSumProblem.java) * [WordBoggle](https://github.com/TheAlgorithms/Java/blob/master/Misc/WordBoggle.java) ## Others + * [BankersAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/Others/BankersAlgorithm.java) * [BestFit](https://github.com/TheAlgorithms/Java/blob/master/Others/BestFit.java) * [BFPRT](https://github.com/TheAlgorithms/Java/blob/master/Others/BFPRT.java) * [BoyerMoore](https://github.com/TheAlgorithms/Java/blob/master/Others/BoyerMoore.java) @@ -271,6 +292,7 @@ * [FirstFit](https://github.com/TheAlgorithms/Java/blob/master/Others/FirstFit.java) * [FloydTriangle](https://github.com/TheAlgorithms/Java/blob/master/Others/FloydTriangle.java) * [GuassLegendre](https://github.com/TheAlgorithms/Java/blob/master/Others/GuassLegendre.java) + * [Huffman](https://github.com/TheAlgorithms/Java/blob/master/Others/Huffman.java) * [Implementing auto completing features using trie](https://github.com/TheAlgorithms/Java/blob/master/Others/Implementing_auto_completing_features_using_trie.java) * [InsertDeleteInArray](https://github.com/TheAlgorithms/Java/blob/master/Others/InsertDeleteInArray.java) * [KMP](https://github.com/TheAlgorithms/Java/blob/master/Others/KMP.java) @@ -304,10 +326,13 @@ * [TopKWords](https://github.com/TheAlgorithms/Java/blob/master/Others/TopKWords.java) * [TowerOfHanoi](https://github.com/TheAlgorithms/Java/blob/master/Others/TowerOfHanoi.java) * [TwoPointers](https://github.com/TheAlgorithms/Java/blob/master/Others/TwoPointers.java) + * [Verhoeff](https://github.com/TheAlgorithms/Java/blob/master/Others/Verhoeff.java) * [WorstFit](https://github.com/TheAlgorithms/Java/blob/master/Others/WorstFit.java) ## Searches * [BinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/BinarySearch.java) + * [BreadthFirstSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/BreadthFirstSearch.java) + * [DepthFirstSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/DepthFirstSearch.java) * [ExponentalSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/ExponentalSearch.java) * [FibonacciSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/FibonacciSearch.java) * [HowManyTimesRotated](https://github.com/TheAlgorithms/Java/blob/master/Searches/HowManyTimesRotated.java) @@ -320,7 +345,6 @@ * [MonteCarloTreeSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/MonteCarloTreeSearch.java) * [PerfectBinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/PerfectBinarySearch.java) * [SaddlebackSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/SaddlebackSearch.java) - * [SearchAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/Searches/SearchAlgorithm.java) * [SquareRootBinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/SquareRootBinarySearch.java) * [TernarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/TernarySearch.java) * [UnionFind](https://github.com/TheAlgorithms/Java/blob/master/Searches/UnionFind.java) diff --git a/Maths/Gaussian.java b/Maths/Gaussian.java new file mode 100644 index 000000000..a48d26ee8 --- /dev/null +++ b/Maths/Gaussian.java @@ -0,0 +1,68 @@ +/** + * \file + * \brief [Gaussian elimination + * method](https://en.wikipedia.org/wiki/Gaussian_elimination) + */ +package Maths; +import java.util.*; + +/** Main function */ +public class Gaussian { + + public static void main(String[] args) { + int mat_size, i, j, step; + Scanner sc = new Scanner(System.in); + + System.out.println("Matrix Size : "); + mat_size = sc.nextInt(); + + double [][] mat = new double[mat_size+1][mat_size+1]; + double [][] x = new double[mat_size][mat_size+1]; + + System.out.println("Enter value of the matrix"); + System.out.println(' '); + for (i = 0; i < mat_size; i++) { + for (j = 0; j <= mat_size; j++) { + mat[i][j] = sc.nextInt(); + } + } + + // perform Gaussian elimination + for (step = 0; step < mat_size - 1; step++) { + for (i = step; i < mat_size - 1; i++) { + double a = (mat[i + 1][step] / mat[step][step]); + + for (j = step; j <= mat_size; j++) + mat[i + 1][j] = mat[i + 1][j] - (a * mat[step][j]); + } + } + + System.out.println("Matrix using Gaussian Elimination method: "); + System.out.println(" "); + for (i = 0; i < mat_size; i++) { + for (j = 0; j <= mat_size; j++) { + x[i][j] = mat[i][j]; + System.out.print(mat[i][j] + " "); + } + System.out.println(); + } + System.out.println( "Value of the Gaussian Elimination method: "); + System.out.println(" "); + + for (i = mat_size - 1; i >= 0; i--) { + double sum = 0; + for (j = mat_size - 1; j > i; j--) { + x[i][j] = x[j][j] * x[i][j]; + sum = x[i][j] + sum; + } + if (x[i][i] == 0){ + x[i][i] = 0; + } + else{ + x[i][i] = (x[i][mat_size] - sum) / (x[i][i]); + } + System.out.print("x" + i + "=" + x[i][i]); + System.out.println(" "); + } + } +}