Advanced Data Structures and Algorithms
Advanced Data Structures and Algorithms
Module – V
Hashing in Data Structures
Hash Table ADT, Hash Function, Collision Resolution Techniques, Advanced Hashing
Techniques, Applications of Hashing, Challenges in Hashing.
Lab Tasks:
1. Understand the structure and working of a Hash Table and implement the Hash Table ADT
2. Explore advanced hashing techniques that improve the performance of basic hash tables
Module – VI
Pattern Matching Algorithms
Brute Force Method, Knuth-Morris-Pratt Algorithm, Boyer-Moore Algorithm.
Lab Tasks:
1. Analyse and discuss the time complexity of the brute force algorithm (best case, worst case,
and average case)
2. Compare the performance of the Knuth-Morris-Pratt Algorithm and the Boyer-Moore
algorithm on various test cases
Module – VII
Searching Strategies
Interpolation Search, Exponential Search, Jump Search.
Lab Tasks:
1. Analyse when interpolation search is more efficient than binary search
2. Compare the performance of jump search, linear search, and binary search on various test
cases
Module – VIII
Sorting Strategies
Multi-way Merge Sort, Heap Sort, Shell Sort.
Lab Tasks:
1. Implement heap sort using a min-heap for ascending order
2. Implement Shell sort and experiment with different gap sequences
Module – IX
Dynamic Programming Techniques
Matrix Chain Multiplication, 0/1 Knapsack, Longest Common Sub sequence.
Lab Tasks:
1. Implement Matrix Chain Multiplication with Dynamic Memory Allocation
2. Optimize the space complexity of the 0/1 Knapsack problem
Module – X
Divide and Conquer Strategies
Strassen’s Matrix Multiplication, Master Theorem, Parallel Algorithms.
Complexity Classes
P, NP Hard and NP Complete Problems
Lab Tasks:
1. Implement traditional matrix multiplication and Strassen’s matrix multiplication
2. Compare the practical performance of divide and conquer algorithm against the theoretical
time complexity derived using the Master Theorem
Course Outcomes
• Students are familiar with algorithmic techniques such as brute force, greedy, and divide and
conquer.
• Application of advanced abstract data type (ADT) and data structures in solving real world
problems.
• Effectively combine fundamental data structures and algorithmic techniques in building a
complete algorithmic solution to a given problem
Text Books
• Data structures, Algorithms and Applications in Java, S.Sahni, Universities Press.
• Data structures and Algorithms in Java, Adam Drozdek, 3rd edition, Cengage Learning.
• Data structures and Algorithm Analysis in Java, M.A.Weiss, 2nd edition
• Introduction to Algorithms T. H. Cormen, C. E. Leiserson, R. L. Rivest, , Prentice hall.
• Algorithms and complexity H. S. Wilf, , Prentice hall.
• Data Structures and Algorithms Made Easy, Narasimha Karumanchi, CareerMonk
Publications
Reference Books
• Java for Programmers, Deitel and Deitel, Pearson education.
• Data structures and Algorithms in Java, R.Lafore, Pearson education.
• Java: The Complete Reference, 8th editon, Herbert Schildt, TMH.
• Data structures and Algorithms in Java, M.T.Goodrich, R.Tomassia, 3rd edition, Wiley
India Edition.
• Data structures and the Java Collection Frame work,W.J.Collins, Mc Graw Hill.
• Classic Data structures in Java, T.Budd, Addison-Wesley (Pearson Education).
• Data structures with Java, Ford and Topp, Pearson Education.
• Data structures using Java, D.S.Malik and P.S.Nair, Cengage learning.
• Data structures with Java, J.R.Hubbard and A.Huray, PHI Pvt. Ltd.
• Data structures and Software Development in an Object-Oriented Domain, J.P.Tremblay
and G.A.Cheston, Java edition, Pearson Education.
*****