CSCI3160 Design and Analysis of Algorithms