Course Ouline [ Home ] [ Up ]
 Introduction What is an algorithm? Notation for programs Proof techniques Basics  review: Sets -  Functions - Limits - Simple series Fundamentals Instances and problems - Elementary operations. Efficiency Average and worst-case analysis Examples Asymptotic notation Introduction A notation for "the order of" The omega notation The theta notation The conditional asymptotic notation Analysis of algorithms Analyzing control structures Using a barometer Amortized analysis Solving recurrences Data structures Arrays, stacks and queues Records and pointers Lists, graphs, trees and associative tables Heaps Disjoint set structures Greedy algorithms Making change General characteristics of Greedy algorithms Graphs MST - Kruskal's and Prims's algorithms Graphs: shortest paths Knapsack problem Scheduling Divide - and - Conquer Multiplying large integers Binary search Sorting by: merging and quicksort Finding the median Matrix multiplication Exponentiation Quick look at cryptography Dynamic programming Making change Principles of optimality The knapsack problem Shortest paths - Floyd's algorithm Chained matrix multiplication Introduction to probabilistic algorithms - Parallel algorithms Introduction to computational complexity