From cfd0bd68d17a0b414cc5b87b3bdc4ecb21c0148f Mon Sep 17 00:00:00 2001 From: shellhub Date: Sat, 24 Oct 2020 16:09:37 +0800 Subject: [PATCH 1/8] remove invalid file --- ...on of array without using extra space.java | 75 ------------------- Others/{3 sum.java => ThreeSum.java} | 2 +- 2 files changed, 1 insertion(+), 76 deletions(-) delete mode 100644 Others/Rotation of array without using extra space.java rename Others/{3 sum.java => ThreeSum.java} (98%) diff --git a/Others/Rotation of array without using extra space.java b/Others/Rotation of array without using extra space.java deleted file mode 100644 index 76380be37..000000000 --- a/Others/Rotation of array without using extra space.java +++ /dev/null @@ -1,75 +0,0 @@ -package Others; - -import java.util.*; - -/** - * Rotation of array without using extra space - * - * - * @author Ujjawal Joshi - * @date 2020.05.18 - * - * Test Cases: - - Input: - 2 //Size of matrix - 1 2 - 3 4 - Output: - 3 1 - 4 2 - ------------------------------ - Input: - 3 //Size of matrix - 1 2 3 - 4 5 6 - 7 8 9 - Output: - 7 4 1 - 8 5 2 - 9 6 3 - * - */ - -class main{ - public static void main(String[] args) - { - Scanner sc=new Scanner(System.in); - int n=sc.nextInt(); - int a[][]=new int[n][n]; - - for(int i=0;i Date: Sat, 24 Oct 2020 16:33:40 +0800 Subject: [PATCH 2/8] fixed build error --- DataStructures/DynamicArray/DynamicArray.java | 3 + DataStructures/Graphs/GraphAlgos.java | 487 ------------------ DataStructures/Lists/ListAddnFun.java | 153 ------ .../LongestPalindromicSubsequenceTests.java | 33 -- Misc/HeapSort.java | 67 --- ciphers/Caesar.java | 4 - ciphers/RSA.java | 7 - 7 files changed, 3 insertions(+), 751 deletions(-) delete mode 100644 DataStructures/Graphs/GraphAlgos.java delete mode 100644 DataStructures/Lists/ListAddnFun.java delete mode 100644 DynamicProgramming/LongestPalindromicSubsequenceTests.java delete mode 100644 Misc/HeapSort.java diff --git a/DataStructures/DynamicArray/DynamicArray.java b/DataStructures/DynamicArray/DynamicArray.java index 1e8ce8abf..f01644872 100644 --- a/DataStructures/DynamicArray/DynamicArray.java +++ b/DataStructures/DynamicArray/DynamicArray.java @@ -1,6 +1,9 @@ package DataStructures.DynamicArray; import java.util.*; +import java.util.function.Consumer; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; /** * This class implements a dynamic array diff --git a/DataStructures/Graphs/GraphAlgos.java b/DataStructures/Graphs/GraphAlgos.java deleted file mode 100644 index 19938c48f..000000000 --- a/DataStructures/Graphs/GraphAlgos.java +++ /dev/null @@ -1,487 +0,0 @@ -package DataStructures.Graphs; -/* -Implementation of graph by using hashmap for vertices of class which contains hashmap for vertex and then algos like prims dijktsra ,depth for search and traversal ,breadth for search and traversal ,algo for cycle present or not ,connected or not ,if not connected then connect it -Test case -Graph gp=new Graph(); - gp.addVertex("A"); - gp.addVertex("B"); - gp.addVertex("C"); - gp.addVertex("D"); - gp.addVertex("E"); - gp.addVertex("F"); - gp.addVertex("G"); - gp.addEdge("A", "B", 2); - gp.addEdge("A", "D", 10); - gp.addEdge("B", "C", 3); - gp.addEdge("C", "D", 1); - gp.addEdge("D", "E", 8); - gp.addEdge("E", "F", 5); - gp.addEdge("E", "G", 6); - gp.addEdge("F", "G", 4); - -// gp.display(); -// System.out.println(gp.numVertex()); -// System.out.println(gp.numEdge()); -// System.out.println(gp.containsEdge("A", "C")); -// -// System.out.println(gp.containsEdge("E", "F")); -// gp.removeEdge("D", "E"); -// gp.display(); -// gp.removeVertex("F"); -// gp.addVertex("F"); -// gp.display(); -// System.out.println(gp.hasPath("A", "F", new HashMap<>())); -// System.out.println(gp.dfs("A", "F")); -// gp.bft(); -// gp.dft(); -// gp.removeEdge("B","C"); -// gp.removeEdge("F","G"); -// System.out.println(gp.isConnected()); -// System.out.println(gp.isCyclic()); -// System.out.println(gp.isTree()); -// System.out.println(gp.getConnectedComp()); -// gp.prims().display(); - System.out.println(gp.Dijktsra("A")); - - - -*/ - - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedList; -import Heaps.GenericHeap; -public class Graph { - private class vertex{ - HashMap nbrs=new HashMap<>(); - } - HashMap vertcs; - public Graph(){ - vertcs=new HashMap<>(); - } - public int numVertex() { - return this.vertcs.size(); - } - public boolean containsVertex(String vname) { - return this.vertcs.containsKey(vname); - } - public void addVertex(String vname) { - - vertex vtx=new vertex(); - this.vertcs.put(vname,vtx); - } - public void removeVertex(String vname) { - vertex vtx=this.vertcs.get(vname); - ArrayList keys=new ArrayList<>(vtx.nbrs.keySet()); - for(String key:keys) { - vertex nbrvtx=this.vertcs.get(key); - nbrvtx.nbrs.remove(vname); - } - this.vertcs.remove(vname); - } - - public int numEdge() { - int count=0; - ArrayList keys=new ArrayList<>(this.vertcs.keySet()); - for(String key:keys) { - vertex vtx=this.vertcs.get(key); - count+=vtx.nbrs.size(); - } - return count/2; - } - public boolean containsEdge(String vname1,String vname2) { - vertex vtx1=this.vertcs.get(vname1); - vertex vtx2=this.vertcs.get(vname2); - if(vtx1==null||vtx2==null||!vtx1.nbrs.containsKey(vname2)) - return false; - return true; - } - public void addEdge(String vname1,String vname2,int cost) { - vertex vtx1=this.vertcs.get(vname1); - vertex vtx2=this.vertcs.get(vname2); - if(vtx1==null||vtx2==null||vtx1.nbrs.containsKey(vname2)) - return; - vtx1.nbrs.put(vname2,cost); - vtx2.nbrs.put(vname1,cost); - } - public void removeEdge(String vname1,String vname2) { - vertex vtx1=this.vertcs.get(vname1); - vertex vtx2=this.vertcs.get(vname2); - if(vtx1==null||vtx2==null||!vtx1.nbrs.containsKey(vname2)) - return; - vtx1.nbrs.remove(vname2); - vtx2.nbrs.remove(vname1); - } - - public void display() { - ArrayList keys=new ArrayList<>(this.vertcs.keySet()); - for(String key:keys) { - vertex vtx=this.vertcs.get(key); - System.out.println(key+" := "+vtx.nbrs); - } - } - - public boolean hasPath(String source ,String dest,HashMap processed) { - processed.put(source, true); - if(containsEdge(source,dest)) { - return true; - } - vertex vtx=this.vertcs.get(source); - ArrayList keys=new ArrayList<>(vtx.nbrs.keySet()); - for(String key:keys) { - if(!processed.containsKey(key) && hasPath(key,dest,processed)) - return true; - } - return false; - - } - private class pair{ - String vname; - String psf; - } - public boolean bfs(String source,String dest) { // breadth first search - HashMap processed=new HashMap<>(); - - LinkedList queue=new LinkedList<>(); - pair sp=new pair(); - sp.vname=source; - sp.psf=source; - queue.addLast(sp); - - while(!queue.isEmpty()) { - pair rp=queue.removeFirst(); - if(processed.containsKey(rp.vname)) - continue; - processed.put(rp.vname,true); - - if(containsEdge(rp.vname,dest)) { - System.out.println(rp.psf+dest); - return true; - } - vertex vtx=this.vertcs.get(rp.vname); - ArrayList nbrs=new ArrayList<>(vtx.nbrs.keySet()); - for(String nbr:nbrs) { - if(!processed.containsKey(nbr)) { - pair np=new pair(); - np.vname=nbr; - np.psf=rp.psf+nbr; - queue.addLast(np); - } - } - } - return false; - } - public boolean dfs(String source,String dest) { //deapth first search - LinkedList stack=new LinkedList<>(); - HashMap processed=new HashMap<>(); - pair sp=new pair(); - sp.vname=source; - sp.psf=source; - stack.addFirst(sp); - while(!stack.isEmpty()) { - pair rp=stack.removeFirst(); - if(processed.containsKey(rp.vname)) - continue; - processed.put(rp.vname,true); - if(containsEdge(rp.vname,dest)) { - System.out.println(rp.psf+dest); - return true; - } - vertex vtx=this.vertcs.get(rp.vname); - ArrayList nbrs=new ArrayList<>(vtx.nbrs.keySet()); - for(String nbr:nbrs) { - if(!processed.containsKey(nbr)) { - pair np=new pair(); - np.vname=nbr; - np.psf=rp.psf+nbr; - stack.addFirst(np); - } - } - - } - return false; - } - public void bft() { //breadth first traversal - HashMap processed=new HashMap<>(); - LinkedList queue=new LinkedList<>(); - ArrayList keys=new ArrayList<>(this.vertcs.keySet()); - for(String key:keys) { - if(processed.containsKey(key)) - continue; - pair sp=new pair(); - sp.vname=key; - sp.psf=key; - queue.addLast(sp); - - while(!queue.isEmpty()) { - pair rp=queue.removeFirst(); - if(processed.containsKey(rp.vname)) - continue; - processed.put(rp.vname,true); - - System.out.println(rp.vname+" via "+rp.psf); - - vertex vtx=this.vertcs.get(rp.vname); - ArrayList nbrs=new ArrayList<>(vtx.nbrs.keySet()); - for(String nbr:nbrs) { - if(!processed.containsKey(nbr)) { - pair np=new pair(); - np.vname=nbr; - np.psf=rp.psf+nbr; - queue.addLast(np); - } - } - } - } - } - public void dft() { //deapt first traversal - HashMap processed=new HashMap<>(); - LinkedList stack=new LinkedList<>(); - ArrayList keys=new ArrayList<>(this.vertcs.keySet()); - for(String key:keys) { - pair sp=new pair(); - sp.vname=key; - sp.psf=key; - stack.addFirst(sp); - - while(!stack.isEmpty()) { - pair rp=stack.removeFirst(); - if(processed.containsKey(rp.vname)) - continue; - processed.put(rp.vname,true); - - System.out.println(rp.vname+" via "+rp.psf); - - vertex vtx=this.vertcs.get(rp.vname); - ArrayList nbrs=new ArrayList<>(vtx.nbrs.keySet()); - for(String nbr:nbrs) { - if(!processed.containsKey(nbr)) { - pair np=new pair(); - np.vname=nbr; - np.psf=rp.psf+nbr; - stack.addFirst(np); - } - } - } - } - } - - - public boolean isCyclic() { - HashMap processed=new HashMap<>(); - LinkedList queue=new LinkedList<>(); - ArrayList keys=new ArrayList<>(this.vertcs.keySet()); - for(String key:keys) { - if(processed.containsKey(key)) - continue; - pair sp=new pair(); - sp.vname=key; - sp.psf=key; - queue.addLast(sp); - - while(!queue.isEmpty()) { - pair rp=queue.removeFirst(); - if(processed.containsKey(rp.vname)) - return true; - processed.put(rp.vname,true); - - vertex vtx=this.vertcs.get(rp.vname); - ArrayList nbrs=new ArrayList<>(vtx.nbrs.keySet()); - for(String nbr:nbrs) { - if(!processed.containsKey(nbr)) { - pair np=new pair(); - np.vname=nbr; - np.psf=rp.psf+nbr; - queue.addLast(np); - } - } - } - } - return false; - } - public boolean isConnected() { - int flag=0; - HashMap processed=new HashMap<>(); - LinkedList queue=new LinkedList<>(); - ArrayList keys=new ArrayList<>(this.vertcs.keySet()); - for(String key:keys) { - if(processed.containsKey(key)) - continue; - flag++; - pair sp=new pair(); - sp.vname=key; - sp.psf=key; - queue.addLast(sp); - - while(!queue.isEmpty()) { - pair rp=queue.removeFirst(); - if(processed.containsKey(rp.vname)) - continue; - processed.put(rp.vname,true); - - vertex vtx=this.vertcs.get(rp.vname); - ArrayList nbrs=new ArrayList<>(vtx.nbrs.keySet()); - for(String nbr:nbrs) { - if(!processed.containsKey(nbr)) { - pair np=new pair(); - np.vname=nbr; - np.psf=rp.psf+nbr; - queue.addLast(np); - } - } - } - } - if(flag>=2) - return false; - else - return true; - } - public boolean isTree() { - return !isCyclic()&&isConnected(); - } - public ArrayList> getConnectedComp() { - ArrayList> ans=new ArrayList<>(); - HashMap processed=new HashMap<>(); - LinkedList queue=new LinkedList<>(); - ArrayList keys=new ArrayList<>(this.vertcs.keySet()); - for(String key:keys) { - if(processed.containsKey(key)) - continue; - ArrayList subans=new ArrayList<>(); - pair sp=new pair(); - sp.vname=key; - sp.psf=key; - queue.addLast(sp); - - while(!queue.isEmpty()) { - pair rp=queue.removeFirst(); - if(processed.containsKey(rp.vname)) - continue; - processed.put(rp.vname,true); - - subans.add(rp.vname); - - vertex vtx=this.vertcs.get(rp.vname); - ArrayList nbrs=new ArrayList<>(vtx.nbrs.keySet()); - for(String nbr:nbrs) { - if(!processed.containsKey(nbr)) { - pair np=new pair(); - np.vname=nbr; - np.psf=rp.psf+nbr; - queue.addLast(np); - } - } - } - ans.add(subans); - } - return ans; - } - private class PrimsPair implements Comparable{ - String vname; - String acqvname; - int cost; - public int compareTo(PrimsPair o) { - return o.cost-this.cost; - } - - } - public Graph prims() { - HashMap map=new HashMap<>(); - GenericHeap heap=new GenericHeap<>(); - Graph mst=new Graph(); - for(String vrtx:this.vertcs.keySet()) { - PrimsPair np=new PrimsPair(); - np.acqvname=null; - np.vname=vrtx; - np.cost=Integer.MAX_VALUE; - heap.add(np); - map.put(vrtx, np); - } - while(!heap.isEmpty()) { - PrimsPair rp=heap.remove(); - map.remove(rp.vname); - - if(rp.acqvname==null) { - mst.addVertex(rp.vname); - }else { - mst.addVertex(rp.vname); - mst.addEdge(rp.vname, rp.acqvname, rp.cost); - } - - for(String nbr:this.vertcs.get(rp.vname).nbrs.keySet()) { - if(map.containsKey(nbr)) { - //old cost that is from diff path stored in map - int oc=map.get(nbr).cost; - // cost that present vname need cost to go to nbr - int nc=this.vertcs.get(rp.vname).nbrs.get(nbr); - if(nc{ - String vname; - String psf; - int cost; - public int compareTo(DijktsraPair o) { - return o.cost-this.cost; - } - - } - public HashMap Dijktsra(String source) { - HashMap map=new HashMap<>(); - GenericHeap heap=new GenericHeap<>(); - HashMap ans =new HashMap<>(); - for(String vrtx:this.vertcs.keySet()) { - DijktsraPair np=new DijktsraPair(); - np.psf=""; - np.vname=vrtx; - np.cost=Integer.MAX_VALUE; - if(vrtx==source) { - np.cost=0; - np.psf=source; - } - heap.add(np); - map.put(vrtx, np); - } - while(!heap.isEmpty()) { - DijktsraPair rp=heap.remove(); - map.remove(rp.vname); - - ans.put(rp.vname,rp.cost); - - for(String nbr:this.vertcs.get(rp.vname).nbrs.keySet()) { - if(map.containsKey(nbr)) { - //old cost that is from diff path stored in map - int oc=map.get(nbr).cost; - // cost that present vname need cost to go to nbr - int nc=rp.cost+this.vertcs.get(rp.vname).nbrs.get(nbr); - if(nc= 0; i--) - heapify(arr, n, i); - - // One by one extract an element from heap - for (int i = n - 1; i >= 0; i--) { - // Move current root to end - int temp = arr[0]; - arr[0] = arr[i]; - arr[i] = temp; - - // call max heapify on the reduced heap - heapify(arr, i, 0); - } - } - - // To heapify a subtree rooted with node i which is - // an index in arr[]. n is size of heap - void heapify(int[] arr, int n, int i) { - int largest = i; // Initialize largest as root - int l = 2 * i + 1; // left = 2*i + 1 - int r = 2 * i + 2; // right = 2*i + 2 - - // If left child is larger than root - if (l < n && arr[l] > arr[largest]) - largest = l; - - // If right child is larger than largest so far - if (r < n && arr[r] > arr[largest]) - largest = r; - - // If largest is not root - if (largest != i) { - int swap = arr[i]; - arr[i] = arr[largest]; - arr[largest] = swap; - - // Recursively heapify the affected sub-tree - heapify(arr, n, largest); - } - } - - /* A utility function to print array of size n */ - static void printArray(int[] arr) { - int n = arr.length; - for (int i = 0; i < n; ++i) - System.out.print(arr[i] + " "); - System.out.println(); - } - - // Driver program - public static void main(String args[]) { - int arr[] = {12, 11, 13, 5, 6, 7}; - - heap_sort ob = new heap_sort(); - ob.sort(arr); - - System.out.println("Sorted array is"); - printArray(arr); - } -} diff --git a/ciphers/Caesar.java b/ciphers/Caesar.java index 76893f453..d9028613b 100644 --- a/ciphers/Caesar.java +++ b/ciphers/Caesar.java @@ -104,10 +104,6 @@ public class Caesar { return c >= 'a' && c <= 'z'; } - /** - * - * @deprecated TODO remove main and make JUnit Testing - */ public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Please enter the message (Latin Alphabet)"); diff --git a/ciphers/RSA.java b/ciphers/RSA.java index acb99f0f6..751475168 100644 --- a/ciphers/RSA.java +++ b/ciphers/RSA.java @@ -9,13 +9,6 @@ import javax.swing.JOptionPane; */ public final class RSA { - /** - * Trivial test program. - * - * @param args - * @deprecated TODO remove main and make JUnit Testing or any other - * methodology - */ public static void main(String[] args) { RSA rsa = new RSA(1024); From ddff7efcbd393a1d3b51b8a8b2b50e451c1381b3 Mon Sep 17 00:00:00 2001 From: shellhub Date: Sat, 24 Oct 2020 16:48:33 +0800 Subject: [PATCH 3/8] add build action --- .github/workflows/build.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..87cf28668 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,16 @@ +name: Build + +on: [push] + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + - name: Set up JDK 12 + uses: actions/setup-java@v1 + with: + java-version: 12 + - run: find . -type f -name "*.java" > sources.txt + - run: javac @sources.txt \ No newline at end of file From 6aa373e292cb882191e40ed6efbecb6c3dffd9cf Mon Sep 17 00:00:00 2001 From: shellhub Date: Sat, 24 Oct 2020 16:52:16 +0800 Subject: [PATCH 4/8] fixed action --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 87cf28668..92ee5cde4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,6 +1,6 @@ name: Build -on: [push] +on: [push, pull_request] jobs: lint: From 14ebae6ba33a8768e3a48ae74854388c39a17474 Mon Sep 17 00:00:00 2001 From: shellhub Date: Sat, 24 Oct 2020 16:57:49 +0800 Subject: [PATCH 5/8] test build error --- Misc/MedianOfRunningArray.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Misc/MedianOfRunningArray.java b/Misc/MedianOfRunningArray.java index 32bbf5194..a46788a5b 100644 --- a/Misc/MedianOfRunningArray.java +++ b/Misc/MedianOfRunningArray.java @@ -9,7 +9,7 @@ import java.util.PriorityQueue; */ public class MedianOfRunningArray { private PriorityQueue p1; - private PriorityQueue p2; + private PriorityQueue p2 //Constructor public MedianOfRunningArray() { From c4f5729e9eb15915e8e2398e0a616b4fed9654f8 Mon Sep 17 00:00:00 2001 From: shellhub Date: Sat, 24 Oct 2020 17:05:58 +0800 Subject: [PATCH 6/8] complete build action --- Misc/MedianOfRunningArray.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Misc/MedianOfRunningArray.java b/Misc/MedianOfRunningArray.java index a46788a5b..32bbf5194 100644 --- a/Misc/MedianOfRunningArray.java +++ b/Misc/MedianOfRunningArray.java @@ -9,7 +9,7 @@ import java.util.PriorityQueue; */ public class MedianOfRunningArray { private PriorityQueue p1; - private PriorityQueue p2 + private PriorityQueue p2; //Constructor public MedianOfRunningArray() { From 409d1b6b732df6f4894286f10e70ea029e60c024 Mon Sep 17 00:00:00 2001 From: shellhub Date: Sat, 24 Oct 2020 17:16:41 +0800 Subject: [PATCH 7/8] remove prettier --- .github/workflows/prettier.yml | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 .github/workflows/prettier.yml diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml deleted file mode 100644 index ea5320133..000000000 --- a/.github/workflows/prettier.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Prettier - -on: - pull_request: - push: - branches: - - master - - Development - -jobs: - prettier: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - ref: ${{ github.head_ref }} - - - name: Prettify code - uses: creyD/prettier_action@v3.0 - with: - prettier_options: --write **/*.{java,md} - commit_message: 'feat: prettify code' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From e3e3f8f2981f5202bf7d82bddaa293485bd57df5 Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Sat, 24 Oct 2020 09:17:43 +0000 Subject: [PATCH 8/8] updating DIRECTORY.md --- DIRECTORY.md | 483 +++++++++++++++++++++++++-------------------------- 1 file changed, 233 insertions(+), 250 deletions(-) diff --git a/DIRECTORY.md b/DIRECTORY.md index d58405a8a..2ac0c93b0 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -1,275 +1,258 @@ -## ciphers -- [AES](https://github.com/TheAlgorithms/Java/blob/master/ciphers/AES.java) -- [AESEncryption](https://github.com/TheAlgorithms/Java/blob/master/ciphers/AESEncryption.java) -- [Caesar](https://github.com/TheAlgorithms/Java/blob/master/ciphers/Caesar.java) -- [ColumnarTranspositionCipher](https://github.com/TheAlgorithms/Java/blob/master/ciphers/ColumnarTranspositionCipher.java) -- [RSA](https://github.com/TheAlgorithms/Java/blob/master/ciphers/RSA.java) -- [SimpleSubstitutionCipher](https://github.com/TheAlgorithms/Java/blob/master/ciphers/SimpleSubstitutionCipher.java) -- [Vigenere](https://github.com/TheAlgorithms/Java/blob/master/ciphers/Vigenere.java) +## ciphers + * [AES](https://github.com/TheAlgorithms/Java/blob/master/ciphers/AES.java) + * [AESEncryption](https://github.com/TheAlgorithms/Java/blob/master/ciphers/AESEncryption.java) + * [Caesar](https://github.com/TheAlgorithms/Java/blob/master/ciphers/Caesar.java) + * [ColumnarTranspositionCipher](https://github.com/TheAlgorithms/Java/blob/master/ciphers/ColumnarTranspositionCipher.java) + * [RSA](https://github.com/TheAlgorithms/Java/blob/master/ciphers/RSA.java) + * [SimpleSubstitutionCipher](https://github.com/TheAlgorithms/Java/blob/master/ciphers/SimpleSubstitutionCipher.java) + * [Vigenere](https://github.com/TheAlgorithms/Java/blob/master/ciphers/Vigenere.java) ## Conversions - -- [AnyBaseToAnyBase](https://github.com/TheAlgorithms/Java/blob/master/Conversions/AnyBaseToAnyBase.java) -- [AnyBaseToDecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/AnyBaseToDecimal.java) -- [AnytoAny](https://github.com/TheAlgorithms/Java/blob/master/Conversions/AnytoAny.java) -- [BinaryToDecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/BinaryToDecimal.java) -- [BinaryToHexadecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/BinaryToHexadecimal.java) -- [BinaryToOctal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/BinaryToOctal.java) -- [DecimalToAnyBase](https://github.com/TheAlgorithms/Java/blob/master/Conversions/DecimalToAnyBase.java) -- [DecimalToBinary](https://github.com/TheAlgorithms/Java/blob/master/Conversions/DecimalToBinary.java) -- [DecimalToHexaDecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/DecimalToHexaDecimal.java) -- [DecimalToOctal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/DecimalToOctal.java) -- [HexaDecimalToBinary](https://github.com/TheAlgorithms/Java/blob/master/Conversions/HexaDecimalToBinary.java) -- [HexaDecimalToDecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/HexaDecimalToDecimal.java) -- [HexToOct](https://github.com/TheAlgorithms/Java/blob/master/Conversions/HexToOct.java) -- [IntegerToRoman](https://github.com/TheAlgorithms/Java/blob/master/Conversions/IntegerToRoman.java) -- [OctalToDecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/OctalToDecimal.java) -- [OctalToHexadecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/OctalToHexadecimal.java) -- [RomanToInteger](https://github.com/TheAlgorithms/Java/blob/master/Conversions/RomanToInteger.java) + * [AnyBaseToAnyBase](https://github.com/TheAlgorithms/Java/blob/master/Conversions/AnyBaseToAnyBase.java) + * [AnyBaseToDecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/AnyBaseToDecimal.java) + * [AnytoAny](https://github.com/TheAlgorithms/Java/blob/master/Conversions/AnytoAny.java) + * [BinaryToDecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/BinaryToDecimal.java) + * [BinaryToHexadecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/BinaryToHexadecimal.java) + * [BinaryToOctal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/BinaryToOctal.java) + * [DecimalToAnyBase](https://github.com/TheAlgorithms/Java/blob/master/Conversions/DecimalToAnyBase.java) + * [DecimalToBinary](https://github.com/TheAlgorithms/Java/blob/master/Conversions/DecimalToBinary.java) + * [DecimalToHexaDecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/DecimalToHexaDecimal.java) + * [DecimalToOctal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/DecimalToOctal.java) + * [HexaDecimalToBinary](https://github.com/TheAlgorithms/Java/blob/master/Conversions/HexaDecimalToBinary.java) + * [HexaDecimalToDecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/HexaDecimalToDecimal.java) + * [HexToOct](https://github.com/TheAlgorithms/Java/blob/master/Conversions/HexToOct.java) + * [IntegerToRoman](https://github.com/TheAlgorithms/Java/blob/master/Conversions/IntegerToRoman.java) + * [OctalToDecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/OctalToDecimal.java) + * [OctalToHexadecimal](https://github.com/TheAlgorithms/Java/blob/master/Conversions/OctalToHexadecimal.java) + * [RomanToInteger](https://github.com/TheAlgorithms/Java/blob/master/Conversions/RomanToInteger.java) ## DataStructures - -- Bags - - [Bag](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Bags/Bag.java) -- Buffers - - [CircularBuffer](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Buffers/CircularBuffer.java) -- DynamicArray - - [DynamicArray](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/DynamicArray/DynamicArray.java) -- Graphs - - [A Star](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/A_Star.java) - - [BellmanFord](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/BellmanFord.java) - - [ConnectedComponent](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/ConnectedComponent.java) - - [Cycles](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/Cycles.java) - - [FloydWarshall](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/FloydWarshall.java) - - [GraphAlgos](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/GraphAlgos.java) - - [Graphs](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/Graphs.java) - - [Kruskal](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/Kruskal.java) - - [MatrixGraphs](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/MatrixGraphs.java) - - [PrimMST](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/PrimMST.java) -- HashMap - - Hashing - - [HashMap](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/HashMap/Hashing/HashMap.java) - - [HashMapLinearProbing](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/HashMap/Hashing/HashMapLinearProbing.java) - - [Main](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/HashMap/Hashing/Main.java) - - [MainLinearProbing](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/HashMap/Hashing/MainLinearProbing.java) -- Heaps - - [EmptyHeapException](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Heaps/EmptyHeapException.java) - - [Heap](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Heaps/Heap.java) - - [HeapElement](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Heaps/HeapElement.java) - - [MaxHeap](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Heaps/MaxHeap.java) - - [MinHeap](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Heaps/MinHeap.java) - - [MinPriorityQueue](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Heaps/MinPriorityQueue.java) -- Lists - - [CircleLinkedList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/CircleLinkedList.java) - - [CountSinglyLinkedListRecursion](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/CountSinglyLinkedListRecursion.java) - - [CursorLinkedList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/CursorLinkedList.java) - - [DoublyLinkedList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/DoublyLinkedList.java) - - [ListAddnFun](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/ListAddnFun.java) - - [Merge K SortedLinkedlist](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/Merge_K_SortedLinkedlist.java) - - [MergeSortedArrayList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/MergeSortedArrayList.java) - - [MergeSortedSinglyLinkedList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/MergeSortedSinglyLinkedList.java) - - [SearchSinglyLinkedListRecursion](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/SearchSinglyLinkedListRecursion.java) - - [SinglyLinkedList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/SinglyLinkedList.java) -- Queues - - [GenericArrayListQueue](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Queues/GenericArrayListQueue.java) - - [LinkedQueue](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Queues/LinkedQueue.java) - - [PriorityQueues](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Queues/PriorityQueues.java) - - [Queues](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Queues/Queues.java) -- 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) - - [NodeStack](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/NodeStack.java) - - [StackArray](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/StackArray.java) - - [StackArrayList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/StackArrayList.java) - - [StackOfLinkedList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/StackOfLinkedList.java) -- Trees - - [AVLTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/AVLTree.java) - - [BinaryTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/BinaryTree.java) - - [BSTIterative](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/BSTIterative.java) - - [BSTRecursive](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/BSTRecursive.java) - - [GenericTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/GenericTree.java) - - [LevelOrderTraversal](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/LevelOrderTraversal.java) - - [LevelOrderTraversalQueue](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/LevelOrderTraversalQueue.java) - - [PrintTopViewofTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/PrintTopViewofTree.java) - - [RedBlackBST](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/RedBlackBST.java) - - [TreeTraversal](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/TreeTraversal.java) - - [TrieImp](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/TrieImp.java) - - [ValidBSTOrNot](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/ValidBSTOrNot.java) + * Bags + * [Bag](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Bags/Bag.java) + * Buffers + * [CircularBuffer](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Buffers/CircularBuffer.java) + * DynamicArray + * [DynamicArray](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/DynamicArray/DynamicArray.java) + * Graphs + * [A Star](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/A_Star.java) + * [BellmanFord](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/BellmanFord.java) + * [ConnectedComponent](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/ConnectedComponent.java) + * [Cycles](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/Cycles.java) + * [FloydWarshall](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/FloydWarshall.java) + * [Graphs](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/Graphs.java) + * [Kruskal](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/Kruskal.java) + * [MatrixGraphs](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/MatrixGraphs.java) + * [PrimMST](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Graphs/PrimMST.java) + * HashMap + * Hashing + * [HashMap](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/HashMap/Hashing/HashMap.java) + * [HashMapLinearProbing](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/HashMap/Hashing/HashMapLinearProbing.java) + * [Main](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/HashMap/Hashing/Main.java) + * [MainLinearProbing](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/HashMap/Hashing/MainLinearProbing.java) + * Heaps + * [EmptyHeapException](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Heaps/EmptyHeapException.java) + * [Heap](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Heaps/Heap.java) + * [HeapElement](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Heaps/HeapElement.java) + * [MaxHeap](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Heaps/MaxHeap.java) + * [MinHeap](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Heaps/MinHeap.java) + * [MinPriorityQueue](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Heaps/MinPriorityQueue.java) + * Lists + * [CircleLinkedList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/CircleLinkedList.java) + * [CountSinglyLinkedListRecursion](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/CountSinglyLinkedListRecursion.java) + * [CursorLinkedList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/CursorLinkedList.java) + * [DoublyLinkedList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/DoublyLinkedList.java) + * [Merge K SortedLinkedlist](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/Merge_K_SortedLinkedlist.java) + * [MergeSortedArrayList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/MergeSortedArrayList.java) + * [MergeSortedSinglyLinkedList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/MergeSortedSinglyLinkedList.java) + * [SearchSinglyLinkedListRecursion](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/SearchSinglyLinkedListRecursion.java) + * [SinglyLinkedList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Lists/SinglyLinkedList.java) + * Queues + * [GenericArrayListQueue](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Queues/GenericArrayListQueue.java) + * [LinkedQueue](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Queues/LinkedQueue.java) + * [PriorityQueues](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Queues/PriorityQueues.java) + * [Queues](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Queues/Queues.java) + * 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) + * [NodeStack](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/NodeStack.java) + * [StackArray](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/StackArray.java) + * [StackArrayList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/StackArrayList.java) + * [StackOfLinkedList](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Stacks/StackOfLinkedList.java) + * Trees + * [AVLTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/AVLTree.java) + * [BinaryTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/BinaryTree.java) + * [BSTIterative](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/BSTIterative.java) + * [BSTRecursive](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/BSTRecursive.java) + * [GenericTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/GenericTree.java) + * [LevelOrderTraversal](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/LevelOrderTraversal.java) + * [LevelOrderTraversalQueue](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/LevelOrderTraversalQueue.java) + * [PrintTopViewofTree](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/PrintTopViewofTree.java) + * [RedBlackBST](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/RedBlackBST.java) + * [TreeTraversal](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/TreeTraversal.java) + * [TrieImp](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/TrieImp.java) + * [ValidBSTOrNot](https://github.com/TheAlgorithms/Java/blob/master/DataStructures/Trees/ValidBSTOrNot.java) ## divideconquer - -- [ClosestPair](https://github.com/TheAlgorithms/Java/blob/master/divideconquer/ClosestPair.java) -- [SkylineAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/divideconquer/SkylineAlgorithm.java) + * [ClosestPair](https://github.com/TheAlgorithms/Java/blob/master/divideconquer/ClosestPair.java) + * [SkylineAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/divideconquer/SkylineAlgorithm.java) ## DynamicProgramming - -- [BoardPath](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/BoardPath.java) -- [CoinChange](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/CoinChange.java) -- [EditDistance](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/EditDistance.java) -- [EggDropping](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/EggDropping.java) -- [Fibonacci](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/Fibonacci.java) -- [FordFulkerson](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/FordFulkerson.java) -- [KadaneAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/KadaneAlgorithm.java) -- [Knapsack](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/Knapsack.java) -- [LevenshteinDistance](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LevenshteinDistance.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) -- [LongestPalindromicSubsequenceTests](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestPalindromicSubsequenceTests.java) -- [LongestValidParentheses](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestValidParentheses.java) -- [MatrixChainMultiplication](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/MatrixChainMultiplication.java) -- [MinimumSumPartition](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/MinimumSumPartition.java) -- [RodCutting](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/RodCutting.java) -- [SubsetSum](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/SubsetSum.java) + * [BoardPath](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/BoardPath.java) + * [CoinChange](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/CoinChange.java) + * [EditDistance](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/EditDistance.java) + * [EggDropping](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/EggDropping.java) + * [Fibonacci](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/Fibonacci.java) + * [FordFulkerson](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/FordFulkerson.java) + * [KadaneAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/KadaneAlgorithm.java) + * [Knapsack](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/Knapsack.java) + * [LevenshteinDistance](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LevenshteinDistance.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) + * [LongestValidParentheses](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/LongestValidParentheses.java) + * [MatrixChainMultiplication](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/MatrixChainMultiplication.java) + * [MinimumSumPartition](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/MinimumSumPartition.java) + * [RodCutting](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/RodCutting.java) + * [SubsetSum](https://github.com/TheAlgorithms/Java/blob/master/DynamicProgramming/SubsetSum.java) ## Maths - -- [AbsoluteMax](https://github.com/TheAlgorithms/Java/blob/master/Maths/AbsoluteMax.java) -- [AbsoluteMin](https://github.com/TheAlgorithms/Java/blob/master/Maths/AbsoluteMin.java) -- [AbsoluteValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/AbsoluteValue.java) -- [AliquotSum](https://github.com/TheAlgorithms/Java/blob/master/Maths/AliquotSum.java) -- [AmicableNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/AmicableNumber.java) -- [Area](https://github.com/TheAlgorithms/Java/blob/master/Maths/Area.java) -- [Armstrong](https://github.com/TheAlgorithms/Java/blob/master/Maths/Armstrong.java) -- [Average](https://github.com/TheAlgorithms/Java/blob/master/Maths/Average.java) -- [Ceil](https://github.com/TheAlgorithms/Java/blob/master/Maths/Ceil.java) -- [Combinations](https://github.com/TheAlgorithms/Java/blob/master/Maths/Combinations.java) -- [Factorial](https://github.com/TheAlgorithms/Java/blob/master/Maths/Factorial.java) -- [FactorialRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/FactorialRecursion.java) -- [FibonacciNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/FibonacciNumber.java) -- [FindMax](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMax.java) -- [FindMaxRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMaxRecursion.java) -- [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) -- [GCD](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCD.java) -- [GCDRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCDRecursion.java) -- [LucasSeries](https://github.com/TheAlgorithms/Java/blob/master/Maths/LucasSeries.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) -- [Mode](https://github.com/TheAlgorithms/Java/blob/master/Maths/Mode.java) -- [NumberOfDigits](https://github.com/TheAlgorithms/Java/blob/master/Maths/NumberOfDigits.java) -- [PalindromeNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/PalindromeNumber.java) -- [ParseInteger](https://github.com/TheAlgorithms/Java/blob/master/Maths/ParseInteger.java) -- [PerfectCube](https://github.com/TheAlgorithms/Java/blob/master/Maths/PerfectCube.java) -- [PerfectNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/PerfectNumber.java) -- [PerfectSquare](https://github.com/TheAlgorithms/Java/blob/master/Maths/PerfectSquare.java) -- [Pow](https://github.com/TheAlgorithms/Java/blob/master/Maths/Pow.java) -- [PowerOfTwoOrNot](https://github.com/TheAlgorithms/Java/blob/master/Maths/PowerOfTwoOrNot.java) -- [PowRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/PowRecursion.java) -- [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) -- [SumOfArithmeticSeries](https://github.com/TheAlgorithms/Java/blob/master/Maths/SumOfArithmeticSeries.java) -- [SumOfDigits](https://github.com/TheAlgorithms/Java/blob/master/Maths/SumOfDigits.java) -- [VampireNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/VampireNumber.java) + * [AbsoluteMax](https://github.com/TheAlgorithms/Java/blob/master/Maths/AbsoluteMax.java) + * [AbsoluteMin](https://github.com/TheAlgorithms/Java/blob/master/Maths/AbsoluteMin.java) + * [AbsoluteValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/AbsoluteValue.java) + * [AliquotSum](https://github.com/TheAlgorithms/Java/blob/master/Maths/AliquotSum.java) + * [AmicableNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/AmicableNumber.java) + * [Area](https://github.com/TheAlgorithms/Java/blob/master/Maths/Area.java) + * [Armstrong](https://github.com/TheAlgorithms/Java/blob/master/Maths/Armstrong.java) + * [Average](https://github.com/TheAlgorithms/Java/blob/master/Maths/Average.java) + * [Ceil](https://github.com/TheAlgorithms/Java/blob/master/Maths/Ceil.java) + * [Combinations](https://github.com/TheAlgorithms/Java/blob/master/Maths/Combinations.java) + * [Factorial](https://github.com/TheAlgorithms/Java/blob/master/Maths/Factorial.java) + * [FactorialRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/FactorialRecursion.java) + * [FibonacciNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/FibonacciNumber.java) + * [FindMax](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMax.java) + * [FindMaxRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/FindMaxRecursion.java) + * [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) + * [GCD](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCD.java) + * [GCDRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCDRecursion.java) + * [LucasSeries](https://github.com/TheAlgorithms/Java/blob/master/Maths/LucasSeries.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) + * [Mode](https://github.com/TheAlgorithms/Java/blob/master/Maths/Mode.java) + * [NumberOfDigits](https://github.com/TheAlgorithms/Java/blob/master/Maths/NumberOfDigits.java) + * [PalindromeNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/PalindromeNumber.java) + * [ParseInteger](https://github.com/TheAlgorithms/Java/blob/master/Maths/ParseInteger.java) + * [PerfectCube](https://github.com/TheAlgorithms/Java/blob/master/Maths/PerfectCube.java) + * [PerfectNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/PerfectNumber.java) + * [PerfectSquare](https://github.com/TheAlgorithms/Java/blob/master/Maths/PerfectSquare.java) + * [Pow](https://github.com/TheAlgorithms/Java/blob/master/Maths/Pow.java) + * [PowerOfTwoOrNot](https://github.com/TheAlgorithms/Java/blob/master/Maths/PowerOfTwoOrNot.java) + * [PowRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/PowRecursion.java) + * [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) + * [SumOfArithmeticSeries](https://github.com/TheAlgorithms/Java/blob/master/Maths/SumOfArithmeticSeries.java) + * [SumOfDigits](https://github.com/TheAlgorithms/Java/blob/master/Maths/SumOfDigits.java) + * [VampireNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/VampireNumber.java) ## MinimizingLateness - -- [MinimizingLateness](https://github.com/TheAlgorithms/Java/blob/master/MinimizingLateness/MinimizingLateness.java) + * [MinimizingLateness](https://github.com/TheAlgorithms/Java/blob/master/MinimizingLateness/MinimizingLateness.java) ## Misc - -- [HeapSort](https://github.com/TheAlgorithms/Java/blob/master/Misc/HeapSort.java) -- [MedianOfRunningArray](https://github.com/TheAlgorithms/Java/blob/master/Misc/MedianOfRunningArray.java) -- [PalindromePrime](https://github.com/TheAlgorithms/Java/blob/master/Misc/PalindromePrime.java) + * [MedianOfRunningArray](https://github.com/TheAlgorithms/Java/blob/master/Misc/MedianOfRunningArray.java) + * [PalindromePrime](https://github.com/TheAlgorithms/Java/blob/master/Misc/PalindromePrime.java) ## Others - -- [3 sum](https://github.com/TheAlgorithms/Java/blob/master/Others/3%20sum.java) -- [BestFit](https://github.com/TheAlgorithms/Java/blob/master/Others/BestFit.java) -- [BrianKernighanAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/Others/BrianKernighanAlgorithm.java) -- [CountChar](https://github.com/TheAlgorithms/Java/blob/master/Others/CountChar.java) -- [CountWords](https://github.com/TheAlgorithms/Java/blob/master/Others/CountWords.java) -- [CRC32](https://github.com/TheAlgorithms/Java/blob/master/Others/CRC32.java) -- [CRCAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/Others/CRCAlgorithm.java) -- [Dijkstra](https://github.com/TheAlgorithms/Java/blob/master/Others/Dijkstra.java) -- [EulersFunction](https://github.com/TheAlgorithms/Java/blob/master/Others/EulersFunction.java) -- [FibToN](https://github.com/TheAlgorithms/Java/blob/master/Others/FibToN.java) -- [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) -- [InsertDeleteInArray](https://github.com/TheAlgorithms/Java/blob/master/Others/InsertDeleteInArray.java) -- [KMP](https://github.com/TheAlgorithms/Java/blob/master/Others/KMP.java) -- [Krishnamurthy](https://github.com/TheAlgorithms/Java/blob/master/Others/Krishnamurthy.java) -- [LinearCongruentialGenerator](https://github.com/TheAlgorithms/Java/blob/master/Others/LinearCongruentialGenerator.java) -- [LowestBasePalindrome](https://github.com/TheAlgorithms/Java/blob/master/Others/LowestBasePalindrome.java) -- [PasswordGen](https://github.com/TheAlgorithms/Java/blob/master/Others/PasswordGen.java) -- [PerlinNoise](https://github.com/TheAlgorithms/Java/blob/master/Others/PerlinNoise.java) -- [QueueUsingTwoStacks](https://github.com/TheAlgorithms/Java/blob/master/Others/QueueUsingTwoStacks.java) -- [RabinKarp](https://github.com/TheAlgorithms/Java/blob/master/Others/RabinKarp.java) -- [RemoveDuplicateFromString](https://github.com/TheAlgorithms/Java/blob/master/Others/RemoveDuplicateFromString.java) -- [ReturnSubsequence](https://github.com/TheAlgorithms/Java/blob/master/Others/ReturnSubsequence.java) -- [ReverseStackUsingRecursion](https://github.com/TheAlgorithms/Java/blob/master/Others/ReverseStackUsingRecursion.java) -- [RootPrecision](https://github.com/TheAlgorithms/Java/blob/master/Others/RootPrecision.java) -- [Rotation of array without using extra space](https://github.com/TheAlgorithms/Java/blob/master/Others/Rotation%20of%20array%20without%20using%20extra%20space.java) -- [SieveOfEratosthenes](https://github.com/TheAlgorithms/Java/blob/master/Others/SieveOfEratosthenes.java) -- [SJF](https://github.com/TheAlgorithms/Java/blob/master/Others/SJF.java) -- [SkylineProblem](https://github.com/TheAlgorithms/Java/blob/master/Others/SkylineProblem.java) -- [StackPostfixNotation](https://github.com/TheAlgorithms/Java/blob/master/Others/StackPostfixNotation.java) -- [StringMatchFiniteAutomata](https://github.com/TheAlgorithms/Java/blob/master/Others/StringMatchFiniteAutomata.java) -- [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) -- [WorstFit](https://github.com/TheAlgorithms/Java/blob/master/Others/WorstFit.java) + * [BestFit](https://github.com/TheAlgorithms/Java/blob/master/Others/BestFit.java) + * [BrianKernighanAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/Others/BrianKernighanAlgorithm.java) + * [CountChar](https://github.com/TheAlgorithms/Java/blob/master/Others/CountChar.java) + * [CountWords](https://github.com/TheAlgorithms/Java/blob/master/Others/CountWords.java) + * [CRC32](https://github.com/TheAlgorithms/Java/blob/master/Others/CRC32.java) + * [CRCAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/Others/CRCAlgorithm.java) + * [Dijkstra](https://github.com/TheAlgorithms/Java/blob/master/Others/Dijkstra.java) + * [EulersFunction](https://github.com/TheAlgorithms/Java/blob/master/Others/EulersFunction.java) + * [FibToN](https://github.com/TheAlgorithms/Java/blob/master/Others/FibToN.java) + * [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) + * [InsertDeleteInArray](https://github.com/TheAlgorithms/Java/blob/master/Others/InsertDeleteInArray.java) + * [KMP](https://github.com/TheAlgorithms/Java/blob/master/Others/KMP.java) + * [Krishnamurthy](https://github.com/TheAlgorithms/Java/blob/master/Others/Krishnamurthy.java) + * [LinearCongruentialGenerator](https://github.com/TheAlgorithms/Java/blob/master/Others/LinearCongruentialGenerator.java) + * [LowestBasePalindrome](https://github.com/TheAlgorithms/Java/blob/master/Others/LowestBasePalindrome.java) + * [PasswordGen](https://github.com/TheAlgorithms/Java/blob/master/Others/PasswordGen.java) + * [PerlinNoise](https://github.com/TheAlgorithms/Java/blob/master/Others/PerlinNoise.java) + * [QueueUsingTwoStacks](https://github.com/TheAlgorithms/Java/blob/master/Others/QueueUsingTwoStacks.java) + * [RabinKarp](https://github.com/TheAlgorithms/Java/blob/master/Others/RabinKarp.java) + * [RemoveDuplicateFromString](https://github.com/TheAlgorithms/Java/blob/master/Others/RemoveDuplicateFromString.java) + * [ReturnSubsequence](https://github.com/TheAlgorithms/Java/blob/master/Others/ReturnSubsequence.java) + * [ReverseStackUsingRecursion](https://github.com/TheAlgorithms/Java/blob/master/Others/ReverseStackUsingRecursion.java) + * [RootPrecision](https://github.com/TheAlgorithms/Java/blob/master/Others/RootPrecision.java) + * [SieveOfEratosthenes](https://github.com/TheAlgorithms/Java/blob/master/Others/SieveOfEratosthenes.java) + * [SJF](https://github.com/TheAlgorithms/Java/blob/master/Others/SJF.java) + * [SkylineProblem](https://github.com/TheAlgorithms/Java/blob/master/Others/SkylineProblem.java) + * [StackPostfixNotation](https://github.com/TheAlgorithms/Java/blob/master/Others/StackPostfixNotation.java) + * [StringMatchFiniteAutomata](https://github.com/TheAlgorithms/Java/blob/master/Others/StringMatchFiniteAutomata.java) + * [ThreeSum](https://github.com/TheAlgorithms/Java/blob/master/Others/ThreeSum.java) + * [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) + * [WorstFit](https://github.com/TheAlgorithms/Java/blob/master/Others/WorstFit.java) ## ProjectEuler - -- [Problem01](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem01.java) -- [Problem02](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem02.java) -- [Problem04](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem04.java) -- [Problem06](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem06.java) -- [Problem07](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem07.java) -- [Problem09](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem09.java) -- [Problem10](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem10.java) -- [Problem12](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem12.java) + * [Problem01](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem01.java) + * [Problem02](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem02.java) + * [Problem04](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem04.java) + * [Problem06](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem06.java) + * [Problem07](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem07.java) + * [Problem09](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem09.java) + * [Problem10](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem10.java) + * [Problem12](https://github.com/TheAlgorithms/Java/blob/master/ProjectEuler/Problem12.java) ## Searches - -- [BinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/BinarySearch.java) -- [InterpolationSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/InterpolationSearch.java) -- [IterativeBinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/IterativeBinarySearch.java) -- [IterativeTernarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/IterativeTernarySearch.java) -- [JumpSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/JumpSearch.java) -- [LinearSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/LinearSearch.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) -- [TernarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/TernarySearch.java) + * [BinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/BinarySearch.java) + * [InterpolationSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/InterpolationSearch.java) + * [IterativeBinarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/IterativeBinarySearch.java) + * [IterativeTernarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/IterativeTernarySearch.java) + * [JumpSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/JumpSearch.java) + * [LinearSearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/LinearSearch.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) + * [TernarySearch](https://github.com/TheAlgorithms/Java/blob/master/Searches/TernarySearch.java) ## Sorts - -- [BitonicSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/BitonicSort.java) -- [BogoSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/BogoSort.java) -- [BubbleSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/BubbleSort.java) -- [BubbleSortRecursion](https://github.com/TheAlgorithms/Java/blob/master/Sorts/BubbleSortRecursion.java) -- [BucketSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/BucketSort.java) -- [CocktailShakerSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/CocktailShakerSort.java) -- [CombSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/CombSort.java) -- [CountingSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/CountingSort.java) -- [CycleSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/CycleSort.java) -- [GnomeSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/GnomeSort.java) -- [HeapSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/HeapSort.java) -- [InsertionSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/InsertionSort.java) -- [MergeSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/MergeSort.java) -- [PancakeSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/PancakeSort.java) -- [QuickSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/QuickSort.java) -- [RadixSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/RadixSort.java) -- [SelectionSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/SelectionSort.java) -- [ShellSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/ShellSort.java) -- [SortAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/Sorts/SortAlgorithm.java) -- [SortUtils](https://github.com/TheAlgorithms/Java/blob/master/Sorts/SortUtils.java) + * [BitonicSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/BitonicSort.java) + * [BogoSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/BogoSort.java) + * [BubbleSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/BubbleSort.java) + * [BubbleSortRecursion](https://github.com/TheAlgorithms/Java/blob/master/Sorts/BubbleSortRecursion.java) + * [BucketSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/BucketSort.java) + * [CocktailShakerSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/CocktailShakerSort.java) + * [CombSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/CombSort.java) + * [CountingSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/CountingSort.java) + * [CycleSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/CycleSort.java) + * [GnomeSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/GnomeSort.java) + * [HeapSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/HeapSort.java) + * [InsertionSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/InsertionSort.java) + * [MergeSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/MergeSort.java) + * [PancakeSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/PancakeSort.java) + * [QuickSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/QuickSort.java) + * [RadixSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/RadixSort.java) + * [SelectionSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/SelectionSort.java) + * [ShellSort](https://github.com/TheAlgorithms/Java/blob/master/Sorts/ShellSort.java) + * [SortAlgorithm](https://github.com/TheAlgorithms/Java/blob/master/Sorts/SortAlgorithm.java) + * [SortUtils](https://github.com/TheAlgorithms/Java/blob/master/Sorts/SortUtils.java) ## strings - -- [Alphabetical](https://github.com/TheAlgorithms/Java/blob/master/strings/Alphabetical.java) -- [CharactersSame](https://github.com/TheAlgorithms/Java/blob/master/strings/CharactersSame.java) -- [CheckAnagrams](https://github.com/TheAlgorithms/Java/blob/master/strings/CheckAnagrams.java) -- [Lower](https://github.com/TheAlgorithms/Java/blob/master/strings/Lower.java) -- [Palindrome](https://github.com/TheAlgorithms/Java/blob/master/strings/Palindrome.java) -- [Pangram](https://github.com/TheAlgorithms/Java/blob/master/strings/Pangram.java) -- [ReverseString](https://github.com/TheAlgorithms/Java/blob/master/strings/ReverseString.java) -- [Rotation](https://github.com/TheAlgorithms/Java/blob/master/strings/Rotation.java) -- [Upper](https://github.com/TheAlgorithms/Java/blob/master/strings/Upper.java) + * [Alphabetical](https://github.com/TheAlgorithms/Java/blob/master/strings/Alphabetical.java) + * [CharactersSame](https://github.com/TheAlgorithms/Java/blob/master/strings/CharactersSame.java) + * [CheckAnagrams](https://github.com/TheAlgorithms/Java/blob/master/strings/CheckAnagrams.java) + * [Lower](https://github.com/TheAlgorithms/Java/blob/master/strings/Lower.java) + * [Palindrome](https://github.com/TheAlgorithms/Java/blob/master/strings/Palindrome.java) + * [Pangram](https://github.com/TheAlgorithms/Java/blob/master/strings/Pangram.java) + * [ReverseString](https://github.com/TheAlgorithms/Java/blob/master/strings/ReverseString.java) + * [Rotation](https://github.com/TheAlgorithms/Java/blob/master/strings/Rotation.java) + * [Upper](https://github.com/TheAlgorithms/Java/blob/master/strings/Upper.java)