23-05-2016, 12:36 PM
Fundamentals of algorithmic problem solving, Important problem types, Fundamental data structures.Fundamentals of the Analysis of Algorithm Efficiency : Analysis framework.Asymptotic notations and basic efficiency classes, Mathematical analysis of nonrecursive and recursive algorithms, Example - Fibonacci numbers.Brute Force : Selection sort and bubble sort, Sequential search and brute-force string matching, Exhaustive search.Divide and Conquer : Mergesort, Quicksorst, Binary search. Binary tree traversals and related properties, Multiplication of large integers and Stressen's matrix multiplication.Decrease and Conquer : Insertion sort, Depth first search, Breadth first search, Topological sorting.Algorithms for generating combinatorial objects.Transform and Conquer : Presorting, Balanced search trees, Heaps and heapsort, Problem reduction.Space and Time Tradeoffs : Sorting by counting, Input enhancement in string matching, Hashing.Dynamic Programming : Computing a binomial coefficient, Warshall's and Floyd's algorithms, The Knapsack problem and memory functions.Greedy Technique : Prim's algorithm, Kruskal's algorithm, Dujkstra's algorithm, Huffman trees.Limitations of Algorithm Power : Lower-bound arguments, Decision trees., P, NP and NP-complete problems.Coping with the Limitations of Algorithm Power : Backtracking, Branch-and-bound, Approximation algorithms for NP-hard problems.