Изучите, как следует реализовывать эффективные алгоритмы на основе важнейших структур данных на языке Java, а также как измерять производительность этих алгоритмов. Каждая глава сопровождается упражнениями, помогающими закрепить материал. • Научитесь работать со структурами данных, например, со списками и словарями, разберитесь, как они работают
• Напишите приложение, которое читает страницы Википедии, выполняет синтаксический разбор и обеспечивает навигацию по полученному дереву данных
• Анализируйте код и учитесь прогнозировать, как быстро он будет работать и сколько памяти при этом потреблять
• Пишите классы, реализующие интерфейс Map, пользуйтесь при этом хеш-таблицей и двоичным деревом поиска
• Создайте простой веб-поисковик с собственным поисковым роботом: он будет индексировать веб-страницы, сохранять их содержимое и возвращать нужные результаты
Allen Downey is a Professor Emeritus at Olin College and the author of a series of freetextbooks related to software and data science, including Think Python, Think Bayes, and Think Complexity, which are also published by O’Reilly Media. His blog, Probably Overthinking It, features articles on Bayesian probability and statistics. He holds a Ph.D. in computer science from U.C. Berkeley, and M.S. and B.S. degrees from MIT.
I have to admit I did not do the web crawler project as I was just interested in the concepts. A novice might find the exercises helpful, but I didn’t. A very sad decision made by the author was to focus a lot of the content on tools specific for the web crawling project. I enjoyed the first chapters and skimmed the last few ones.