Textbook in PDF format
Algorithms: Beginnings Algorithm: a definition Time- and Space-Complexity The Counting Principle Stacks and Queues Introduction The Stack ADT The Queue ADT Big-O and Asymptotic Complexity Introduction Big-O Notation Asymptotic Complexity Asymptotic Complexity and Limits State Analysis Introduction State Analysis Example: Sudoku Solver Graphs Introduction The Graph Data Type Graph Traversal Applications of Graphs Weighted Graphs Hashing Introduction Hashing Basics Collision Resolution Proof of Theorem Q Implementation of HashTable in C# Time-Complexity of Hashing Deletion from a Hash Table Alternatives to Probing Applications of Hashing Information Theory and Data Compression Introduction Shannon’s Theory of Information Huffman Coding Optimality of the Huffman Code Connections Between Codes and Entropy Data Compression in Practice Game Strategy Introduction Decision Trees The Minimax Algorithm The Truncated Minimax Algorithm Implementing Chess with the Minimax Algorithm Pruning