This is is a work-in-progress port of the Java source code associated with Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne to PHP. The original Java source code is available in this public repository.
- 1.1 Average.java
- 1.1 BinarySearch.java
- 1.1 Cat.java
- 1.1 Knuth.java
- 1.1 RandomSeq.java
- 1.2 Accumulator.java
- 1.2 Allowlist.java
- 1.2 Counter.java
- 1.2 Date.java
- 1.2 Interval1D.java
- 1.2 Interval2D.java
- 1.2 Point2D.java
- 1.2 RectHV.java
- 1.2 StaticSETofInts.java
- 1.2 Transaction.java
- 1.2 Vector.java
- 1.3 Bag.java
- 1.3 LinkedBag.java
- 1.3 LinkedQueue.java
- 1.3 LinkedStack.java
- 1.3 Queue.java
- 1.3 ResizingArrayBag.java
- 1.3 ResizingArrayQueue.java
- 1.3 ResizingArrayStack.java
- 1.3 Stack.java
- 1.4 DoublingRatio.java
- 1.4 DoublingTest.java
- 1.4 Stopwatch.java
- 1.4 ThreeSum.java
- 1.4 ThreeSumFast.java
- 1.5 QuickUnionUF.java
- 1.5 StdAudio.java
- 1.5 StdDraw.java
- 1.5 StdIn.java
- 1.5 StdOut.java
- 2.1 BinaryInsertion.java
- 2.1 Insertion.java
- 2.2 StdRandom.java
- 2.4 Multiway.java
- 2.4 TopM.java
- 3.1 BinarySearchST.java
- 3.1 FrequencyCounter.java
- 3.1 GREP.java
- 3.4 LinearProbingHashST.java
- 3.4 SeparateChainingHashST.java
- 3.5 AllowFilter.java
- 3.5 BlockFilter.java
- 3.5 DeDup.java
- 3.5 FileIndex.java
- 3.5 LookupCSV.java
- 3.5 LookupIndex.java
- 3.5 SparseVector.java
- 4.1 Bipartite.java
- 4.1 BipartiteX.java
- 4.1 BreadthFirstPaths.java
- 4.1 DegreesOfSeparation.java
- 4.1 EulerianCycle.java
- 4.1 EulerianPath.java
- 4.1 GraphGenerator.java
- 4.1 NonrecursiveDFS.java
- 4.1 SymbolGraph.java
- 4.2 BreadthFirstDirectedPaths.java
- 4.2 DepthFirstDirectedPaths.java
- 4.2 DepthFirstOrder.java
- 4.2 Digraph.java
- 4.2 DigraphGenerator.java
- 4.2 DirectedCycle.java
- 4.2 DirectedCycleX.java
- 4.2 DirectedDFS.java
- 4.2 DirectedEulerianCycle.java
- 4.2 DirectedEulerianPath.java
- 4.2 GabowSCC.java
- 4.2 NonrecursiveDirectedDFS.java
- 4.2 SymbolDigraph.java
- 4.2 TarjanSCC.java
- 4.2 Topological.java
- 4.2 TopologicalX.java
- 4.2 TransitiveClosure.java
- 4.3 BoruvkaMST.java
- 4.3 Edge.java
- 4.3 EdgeWeightedGraph.java
- 4.3 KruskalMST.java
- 4.3 LazyPrimMST.java
- 4.3 PrimMST.java
- 4.4 AcyclicLP.java
- 4.4 AcyclicSP.java
- 4.4 AdjMatrixEdgeWeightedDigraph.java
- 4.4 Arbitrage.java
- 4.4 BellmanFordSP.java
- 4.4 CPM.java
- 4.4 DijkstraAllPairsSP.java
- 4.4 DijkstraSP.java
- 4.4 DijkstraUndirectedSP.java
- 4.4 DirectedEdge.java
- 4.4 EdgeWeightedDigraph.java
- 4.4 EdgeWeightedDirectedCycle.java
- 4.4 FloydWarshall.java
- 5.1 AmericanFlag.java
- 5.1 AmericanFlagX.java
- 5.1 InplaceMSD.java
- 5.1 LSD.java
- 5.1 MSD.java
- 5.1 Quick3string.java
- 5.2 TST.java
- 5.2 TrieST.java
- 5.3 BoyerMoore.java
- 5.3 KMP.java
- 5.3 RabinKarp.java
- 5.4 NFA.java
- 5.5 BinaryDump.java
- 5.5 Count.java
- 5.5 Genome.java
- 5.5 HexDump.java
- 5.5 Huffman.java
- 5.5 LZW.java
- 5.5 PictureDump.java
- 5.5 RunLength.java
- 6.1 CollisionSystem.java
- 6.1 Particle.java
- 6.3 KWIK.java
- 6.3 LongestCommonSubstring.java
- 6.3 LongestRepeatedSubstring.java
- 6.3 SuffixArray.java
- 6.3 SuffixArrayX.java
- 6.4 FlowEdge.java
- 6.4 FlowNetwork.java
- 9.9 ClosestPair.java
- 9.9 Complex.java
- 9.9 FFT.java
- 9.9 FarthestPair.java
- 9.9 GrahamScan.java
- 9.9 Polynomial.java