Я думаю, що курси з проектування алгоритмів та обчислювальної складності завжди є складними для студентів, які не знайомі з цими предметами, оскільки вони вимагають певного рівня математичної зрілості та навичок вирішення проблем. На моєму першому аспірантурі з "обчислювальної складності" мій друг, який отримав ступінь з чистої математики, розповів, як його здивував той факт, що хоча цей курс не вимагає особливих знань з математики (принаймні, це було сказано в план курсу), фактично потрібні майже всі навички, які він здобув через всю свою чисту математику з нижчим ступенем математики!
Я виявив, що найбільше я дізнався про "шлях" (коли вперше починаю аспірантуру), читаючи та виконуючи вправи з книги Сіпсера . Будьте впевнені, що ви виконуєте вправи, адже навички вирішення проблем та математична зрілість - це те, чого ви хочете дізнатися, а не просто купа фактів чи визначень.
Однак книга Сіпсера корисна лише для складності та NP-повноти, її недостатньо буде замінити книгу CLRS. Єдина проблема з CLRS-книгою полягає в тому, що її перевагою всебічного висвітлення може стати її слабкість, оскільки книга може виглядати досить страшно або непосильною для студентів. Тому моя порада полягає в тому, що вам слід дійсно зайти в бібліотеку і шукати книги за алгоритмами, переглядати одну за одною і вибирати ті, які найбільше відповідають вашому мисленнєвому малюнку. І знову не забудьте робити вправи!
Щодо алгоритмів, я особисто пропоную наступні книги (окрім тих, які запропонували Sadeq та JeffE):
- Дуже читабельні та красиві книжкові алгоритми С. Дасгупта, CH Пападімітріу та У. В. Вазірані.
- Записки вбивці (або чернетка книги) Джеффа Еріксона. (Оскільки JeffE занадто скромний, щоб пропонувати власні замітки, я повинен це зробити сам.)
Взагалі, коли ви вивчаєте певний алгоритм чи структуру даних, якщо якимось чином виклад у вашому підручнику недостатньо зрозумілий для вас, то найкращим способом є пошук у google за конспектами лекцій з цієї конкретної теми. У деяких випадках різні пояснення однієї і тієї самої речі з часом дають вам повну картину. Принаймні, саме так у мене це працює.