Design and Analysis of Algorithms and Advanced Data Structures