Algorithm Design and Data Structures for Efficient Problem Solving