- Insertion (iterative, stable, in-place)
gradle test --tests com.sm.algorithms.sort.InsertionSortTest
- Merge Sort Top Down (recursive, stable)
gradle test --tests com.sm.algorithms.sort.MergeSortTopDownTest
- Merge Sort Bottom Up (iterative, stable)
gradle test --tests com.sm.algorithms.sort.MergeSortBottomUpTest
- HeapSort (iterative, stable)
gradle test --tests com.sm.algorithms.sort.HeapSortTest
- CountingSort (iterative, stable)
gradle test --tests com.sm.algorithms.sort.CountingSortTest
gradle test --tests com.sm.algorithms.tree.BstCheckerTest
- Dfs (Traverse, pathTo)
gradle test --tests DfsTest
- Digraph DFS cycle detection (Cycle detection, Traverse, pathTo)
gradle test --tests com.sm.algorithms.graph.DigraphDfsCycleDetectionTest
- Bfs (Traverse, pathTo)
gradle test --tests com.sm.algorithms.graph.BfsTest
- TopologicalSort (Creates depencency sequence, no cycle detection)
gradle test --tests com.sm.algorithms.graph.TopologicalSortTest
- DijkstraShortestPath
- Find shortest path, no cycle detection (see cycle detection in DFS digraph cycle detection above), E logV complexity.
gradle test --tests com.sm.algorithms.graph.DijkstraShortestPathTest
- BellmanFordShortestPath
- Find shortest path, negative cycle detection, V*E complexity.
gradle test --tests com.sm.algorithms.graph.BellmanFordShortestPathTest
TODO: Add cycle detection to Dijkstra's shortest path alg