# Project: CS in Website

Here is the plan for the CS layout:

Data Types:

• Primitive
• Arrays
• Dynamic Arrays (ArrayLists or Vectors)
• Lists
• Stacks
• Queues
• Priority Queues
• Trees
• BST
• Graphs
• Heaps
• Min-Max Heaps
• Fibonacci Heaps
• Soft Heaps – http://www.siam.org/proceedings/soda/2009/SODA09_053_kaplanh.pdf, http://www.cs.princeton.edu/~chazelle/pubs/sheap.pdf
• Sets
• Maps
• Disjoint Set
• Range Trees
• Segment Trees
• Interval Trees
• Disjoint Set Data Structures

Sorts:

• Bogo Sort
• Bubble Sort
• Selection Sort
• Insertion Sort
• Heap Sort
• Soft Heap Sort ðŸ™‚
• Merge Sort
• Quick Sort
• Intro Sort

Simple Algorithms:

• Greedy Algorithms
• Making Change
• Huffman Trees
• Graph Theory

Graph Theory:

• BFS
• DFS
• DFS ID
• Floodfill

Shortest Path Graph Theory:

• A*
• Dijkstra
• Floyd-Warshall
• Bellman Ford
• Slow-Fast Cycle Finding

• Minimal Spanning Tree
• Prim’s Algorithm
• Kruskall’s Algorithm
• Eulerian Tour
• Network Flow

Strings:

• Hashing
• Rabin-Karp
• others?
• Matching
• Knuth-Morris-Pratt String Matching
• Suffix Arrays
• Suffix Trees
• Suffix Trie
• Moniker’s Algorithm (not really strings…)

Dynamic Programming:

• Integer Knapsack
• Continuous Knapsack
• Maximum Value Contiguous Subsequence
• Making Change
• Longest Increasing Subsequence
• Box Stacking
• Building Bridges
• Integer Knapsack Problem (Duplicate Items Forbidden)
• Balanced Partition
• Edit Distance
• Counting Boolean Parenthesizations
• Optimal Strategy for a Game
• Two-Person Traversal of a Sequence of Cities
• Bin Packing (Simplified Version)

Computational Geometry:

• Static
• Convex hull
• Line segment intersection
• Delaunay triangulation
• Voronoi diagram
• Linear programming
• Closest pair of points
• Euclidean shortest path
• Polygon triangulation
• Mesh generation
• Query
• Range searching
• Point location
• Nearest neighbor
• Ray tracing