Design and analysis algorithms