Книга для алгоритмів за межами Кормена


21

Я закінчив більшість матеріалів у книзі «Вступ до алгоритмів» Кормена, і шукаю книгу алгоритмів, яка охоплює матеріал поза книгою Кормана. Чи є якісь рекомендації?

ПРИМІТКА. Я запитав це на стартовому потоці, але не був дуже задоволений відповіддю.

ПРИМІТКА. Переглядаючи більшість коментарів, я думаю, що в ідеалі я хотів би знайти книгу, яка б висвітлювала матеріал курсу 787 у цьому описі курсу .


1
дивіться це
Kaveh

1
@Kaveh Я вже читав Tardos.
Євген

1
"Вступ до алгоритмів" охоплює майже все, що стосується розробки та аналізу алгоритмів, і є найпопулярнішим підручником у світі як для курсів бакалаврату, так і для випускників. Кожна глава містить короткий вступ до відповідних матеріалів, а також є дуже довгий список посилань для подальшого вивчення наприкінці. Якщо вам здається, що ви потребуєте глибшого розуміння певної теми, наприклад алгоритмів графіків, теорії складності тощо, найкраще поглянути на бібліографію книги, і якщо це не допоможе, ви можете також звернутися за порадою до експертів з питань домену щодо цього конкретна область.
Алі

12
"Вступ до алгоритмів" охоплює майже все, що стосується розробки та аналізу алгоритмів. Ах, якби це було правдою.
JeffE

5
Мені дуже подобається одна книга - Вступ до алгоритмів: Творчий підхід Уді Манбера. На відміну від більшості інших підручників, він навчає, як самостійно придумувати алгоритми. Для кожного алгоритму, висвітленого в підручнику, він передбачає все більшу кількість прогресивів розділів, перший описує найбільш очевидний підхід та кожну послідовну спробу виправлення помилок попереднього. На мою думку це відмінний текст.
Vinayak Pathak

Відповіді:


9
I am looking for an algorithms book that covers material beyond Corman's book.

На це можна відповісти численними різними способами, залежно від того, що ви хочете "поза". Я рекомендую задати набагато конкретніші вказівки, оскільки ви, швидше за все, отримаєте конкретні відповіді, які корисні. Щодо загальних вказівок:

  • Ви можете знайти кілька загальних книг, які вивчають загальні алгоритмічні теми більш глибоко, ніж Корман, але здебільшого вам потрібно почати спеціалізуватися, якщо книга буде значно глибшою. Інакше він, швидше за все, роздутий і не матиме корисності.
  • Тож замість цього шукайте конкретні теми. Якщо ви зосереджуєтесь на конкретних темах, є багато вдосконалених матеріалів. Вас цікавлять:
    • алгоритми сортування?
    • рядкові алгоритми?
    • теоретичні алгоритми чисел?
    • матричні алгоритми?
    • графік алгоритми?
    • геометричні алгоритми?
    • квантові алгоритми?
    • стохастичні / рандомізовані алгоритми?
    • лінійне програмування?
    • моделі обчислення?
    • теорія основної складності та алгоритміка?
  • Якщо ви хочете зрозуміти, як отримати власні алгоритми, зосередьтеся на розумінні відомих структур даних, що використовуються в проблемному просторі, в який ви інвестуєте (таким чином, отримайте хорошу глибину наявних знань) і погляньте, щоб добре зрозуміти теорію складності та моделі обчислення. Це дасть гарне інтуїтивне відчуття того, що можливо для даної проблеми, і які підходи, швидше за все, матимуть кращий успіх, навіть якщо вам важко довести формальні нижчі межі.

Книги на кшталт кількох Пападімітріу або «Арора / Барак з теорії складності» - це моя пропозиція перейти до Кормана, щоб краще зрозуміти, які алгоритми можливі, і створити певну інтуїцію, але я б просто переглянув сучасні оглядові документи з певних напрямків і поглянув на випускників і книги рівня досліджень на конкретніші теми, якщо ви хочете ознайомитись із сучасним рівнем розуміння.


1
Ви ставите дуже гарне запитання. Мене цікавлять теоретичні алгоритми чисел, тому я вже розглянув Алгоритмічну теорію чисел Баха та Шалліта. Я шукаю книги, які будуть формувати мої методи алгоритмічного розвитку поза межами Кормена.
Євген

1
Я шукаю не глибину, а широту. Не теорія фундаментальної складності, а вступ до алгоритмів / структур даних, про які я чую, але не є в CLRS (або є лише як проблеми), щоб додати до арсеналу програмування речей, про які я чув; такі речі, як: * пошук, найкращий перший пошук, фільтри Блюма, стиснення файлів / зображень, Burstsort, прихована модель Маркова, класифікатори Naive Bayes, квантові алгоритми, пропуск списків, TimSort, Treaps, Tries, алгоритми діаграм Voronoi тощо. Навіть якщо це просто збірка цікавих статей на різноманітні теми, такі як Перлини програмування Бентлі.
dr Jimbob

16

Як зазначали інші, книги про (просунуті) алгоритми найкраще вибирати за темою. Хороша, але вагома загальна довідка з суворим аналізом, ймовірно, «Мистецтво комп’ютерного програмування Кнута».

Що стосується методів аналізу, то, можливо, вас зацікавить Вступ до аналізу алгоритмів Седжевіка та Флайолета та Алгоритмічна комбінаторика Флайолета та Седжевіка для більшої теорії в тому ж напрямку.

Про підходи до вирішення важких проблем див. Алгоритміка важких проблем Громковича.


5

Ви подивилися підручник з теоретичних комп'ютерних наук

Якщо ви хочете вийти за рамки імперативних алгоритмів і перейти до функціонального програмування, подивіться на чисто функціональні структури даних . Я знаю, що заголовок говорить про структури даних, але алгоритми в книзі можуть відкрити ваші очі на інший спосіб програмування.

EDIT

Я ознайомився з описом курсу для CS 787 та поточних класів

Це зазначає

В основному ми будемо використовувати папери з літератури. Вони будуть доступні як роздатковий матеріал, так і через Інтернет. Кілька книг про алгоритми будуть розміщені в резерві у бібліотеці Вендта.

Якби це я, я би звернувся до каталогу інструкторів . :)


Ні, я не бачив посібника. Дякую за пропозицію!
Євген

Ого. Я не зміг знайти інформацію про курс. Дякуємо за посилання
Євген

-2

Комп'ютерні алгоритми дуже складні та важко зрозумілі, тому немає найкращої книги, тобто лише однієї книги, яка вам все пояснить. Вам потрібно прочитати пару з них, щоб опанувати цю тему.

ось два мої центи, засновані на моїх 10-річному програмуванні та відвідуванні численних інтерв'ю:

  1. Посібник з дизайну алгоритму Стівен С. Скіена
  2. Алгоритми ( http://algs4.cs.princeton.edu/home/ ) Седвік
  3. Вступ до алгоритмів Томас Кормен
  4. Алгоритми інтерв'ю Аднана Азіза
  5. Алгоритми Python: оволодіння основними алгоритмами в мові Python
  6. Алгоритми, розблоковані Томасом Корменом

Довідка:


4
І чому ти їх рекомендуєш?
Рафаель

3
Зокрема, чому ви рекомендуєте "Вступ до алгоритмів" Cormen et al. У відповідь на запитання про книги, що виходять за рамки цієї книги.
Девід Річербі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.