The book main approaches to design and analysis of algorithms including important algorithms and data structures, and results in complexity and computability. The main contents review of algorithm analysis (search in ordered array, binary insertion sort, merge sort, worst-case and average-case time complexity, minimum complexity of sorting n elements for small n, 2-3 trees, asymptotic notation); divide and conquer algorithms (master theorem, integer multiplication, matrix multiplication, fast Fourier transform); graphs (breadth-first search, connected components, topological ordering, depth-first search, way from planar graphs to Robertson-Seymour theorem); dynamic programming. Searching and Traversal Efficient non - recursive binary tree traversal algorithm, Disjoint set operations, union and find algorithms, Spanning trees.