KMP string search Regular expressions and grep Run-length encoding Huffman compression LZW compression Graham scan Package wrap Sweep line / intersection 2D trees DFS BFS Prim's MST Kruskal's MST Topological sort Warshall's transitive closure Kosaraju strong components Priority graph search Dijkstra's single source shortest path Floyd's all-pairs shortest path Ford-Fulkerson augmenting path Minimum cut Bipartite matching Mincost maxflow Linear programming