Вам необходимо просмотреть большую часть материала курса для класса Data Structures and Algorithms. Чтобы ответить на те вопросы, связанные с собеседованием, вам, как правило, не требуется материал, описанный в Discrete Math.
Если вы хотите пройти долгий путь (и на самом деле понять тему), я рекомендую вам действительно работать через материал класса и слушать лекции. Так как UC Berkeley сообщения некоторых из своих лекций в Интернете, вы можете смотреть именно такой класс (с отличным инструктором) здесь:
http://webcast.berkeley.edu/course_details.php?seriesid=1906978343
Обратите особое внимание на лекцию по Big O нотации и сортировка и поиск алгоритмы. Они, как правило, являются битами, которые люди спрашивают о собеседовании.
Если вы не можете быть обеспокоены, чтобы фактически провести 30 часов смотреть лекции и многое другое работает через проблемы, вы должны по крайней мере, проконсультироваться книгу, которая использует курс:
Goodrich and Tamassia's Data Structures and Algorithms in Java
Существует большое вводное определение временных сложностей в SO только http://stackoverflow.com/questions/487258/plain-english-explanation-of-big-o и http://stackoverflow.com/questions/107165/big-o-for-eight-years – Rozuur