Here is an online algorithms textbook,
Algorithms, 4th Edition,
hosted by Princeton University. It presents and covers all of the
fundamental knowledge you need to understand and apply when using
algorithms and data structures in your programming and application
development. These are the most important algorithms and data
structures
in use today. The book uses specific applications to science,
engineering, and industry to facilitate the concepts. Here is a list of
the
algorithms and clients in this textbook.
Algorithm Book Chapters:
Chapter 1: Fundamentals
introduces a scientific and engineering basis for comparing algorithms
and making predictions. It also includes our programming model.
Chapter 2: Sorting
considers several classic sorting algorithms, including
insertion sort, mergesort, and quicksort. It also includes a binary
heap implementation of a priority queue.
Chapter 3: Searching
describes several classic symbol table implementations, including
binary search trees, red-black trees, and hash tables.
Chapter 4: Graphs
surveys the most important graph processing problems, including
depth-first search, breadth-first search, minimum spanning trees,
and shortest paths.
Chapter 5: Strings
investigates specialized algorithms for string processing,
including string sorting, substring search, tries,
regular expressions, and data compression.
Chapter 6: Context
highlights connections to
systems programming, scientific computing, commercial applications,
operations research, and intractability.
Also, here are the Lecture Slides and Notes for Princeton's Algorithms and Data Structures course.
These algorithm course lectures target algorithms for
sorting, searching, and string processing, as well, including geometric and
graph algorithms. They include information on developing
implementations, understanding their performance characteristics, and
estimating their potential effectiveness in applications.
Algorithm Lectures:
1. Union-find
2. Analysis of algorithms
3. Stacks and queues
4. Elementary sorts
5. Efficient sorts
6. Advanced topics in sorting
7. Priority queues
8. Elementary symbol tables
9. Binary search trees
10. Balanced BSTs
11. Hashing
13. Undirected graphs
14. Directed graphs
15. Minimum spanning trees
16. Shortest paths
17. Radix sorts
18. Tries
19. Pattern matching DFA
KMP
20. Data compression Huffman*
LZW*
21. Geometric algorithms convex hulls
22. Geometric search
sweep line intersection
23. Reductions
24. Combinatorial search The Longest Path [mp3]
