1 אלגוריתמים Divide and Conquer: General paradigm, min and max of n numbers, Merge sort, multiplication of large numbers and matrices, quick sort. Analysis. Solving the recurrences. Lower bounds for sorting (worst and average cases ). Average case analysis, e.g: Quicksort Finding the median. Finding kth largest element without sorting. Finding the largest median: Finding k-th largest element without sorting. Data Structures: Representing a set by rooted trees. Union - Find; path compression. Graph algorithms: transforming general problems to graph - theoretic problems. Minimum spanning tree, e.g: Kruskal , Solin , Yao. Shortest paths in labeled graphs, Dijkstra. Application to matrix multiplication. Maximum flow algorithms. Dynamic programming matrix - chain multiplication. Text compression, Huffman. Text encryption, public keys, RSA. Probabilistic Algorithms: Testing primarily, probabilistic pattern matching (Rabin and Karp) ספרות .1991 , ) אלגוריתמיקה ( תרגום עברי של האונ' הפתוחה, דוד הראל.1 2. Thomas H. Cormen, Charles E. Leiserson, Ronald R. Rivest: Introduction to Algorithms Cambridge, N.Y., MIT Press, 1992. )(קיים גם בעברית בתרגום של האונ' הפתוחה 3. David Harel: Algorithmic; Addison – Wesley, Publishing Company; 1987. 4. Cormen, Leiserson, Rivest. Introduction to Algorithms. MIT Press and MCGRAW- HILL, 1990.