This document outlines the units covered in the TCS 505 Design and Analysis of Algorithms course. The five units cover: (1) introduction to algorithms including complexity analysis; (2) sorting algorithms such as bubble sort, merge sort, and heap sort; (3) graph algorithms including breadth-first search, depth-first search, and minimum spanning trees; (4) greedy algorithms and dynamic programming; and (5) string matching and NP-completeness. Key algorithms discussed include binary search, Huffman codes, Dijkstra's algorithm, Floyd-Warshall algorithm, knapsack problem, and Rabin-Karp string matching.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
2K views1 page
DAA Syllabus
This document outlines the units covered in the TCS 505 Design and Analysis of Algorithms course. The five units cover: (1) introduction to algorithms including complexity analysis; (2) sorting algorithms such as bubble sort, merge sort, and heap sort; (3) graph algorithms including breadth-first search, depth-first search, and minimum spanning trees; (4) greedy algorithms and dynamic programming; and (5) string matching and NP-completeness. Key algorithms discussed include binary search, Huffman codes, Dijkstra's algorithm, Floyd-Warshall algorithm, knapsack problem, and Rabin-Karp string matching.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1
TCS 505 Design and Analysis of Algorithms
UNIT – 1 Introduction to Algorithms
Introduction to Algorithms - What is an Algorithm, Rate of growth, Commonly used rate of growths, Types of analysis, Asymptotic Notations, Master theorem Searching - Linear search (sorted and unsorted), Iterative and recursive binary search Tower of Hanoi and solving its recursion, Fibonacci and solving its recursion
UNIT - 2 Sorting Algorithms
Sorting - Bubble sort, Insertion sort, selection sort, quick sort, Randomised quick sort, merge sort, k-way merge sort, heap sort, counting sort, Radix sort, Bucket sort, External sorting Divide sorting algorithms into following types - online sort, stable sort, in place sort Comparison of sorting algorithms on the basis of number of swaps, by number of comparisons, recursive or iterative nature, time and space complexity
UNIT - 3 Graph Algorithms
Representation of Graphs, Breadth-first search (BFS), depth-first search (DFS), topological sort, Difference between BFS and DFS Data structures for disjoint sets - Finding cycle in a graph, Finding strongly connected components Minimum spanning trees - Kruskal and Prim algorithms (Greedy Algorithms) Single source shortest paths - Dijkstra (Greedy Approach) and Bellman ford (Dynamic Programming) algorithms All pair shortest paths - The Floyd Warshall algorithm
UNIT - 4 Greedy Algorithms and and Dynamic Programming
Greedy algorithms - Activity selection problem, Job sequencing problem, Huffman codes, fractional knapsack problem Dynamic Programming - Overlapping substructure property, Optimal substructure property, Tabulation vs Memoization, Fibonacci numbers, 0/1 Knapsack problem, Longest common subsequence, Largest sum contiguous problem, Coin change problem
UNIT – 5 String Matching and NP-Completeness
String Matching - Naive string matching algorithm, The Rabin-Karp algorithm, The Knuth- Morris-Pratt algorithm NP-Completeness - Importance of NP-completeness, P, NP, NP Complete and NP hard problems, Polynomial time and polynomial time verification, The subset-sum problem, The traveling salesman problem, List of NP-complete problems