Изучите, как следует реализовывать эффективные алгоритмы на основе важнейших структур данных на языке Java, а также как измерять производительность этих алгоритмов. Каждая глава сопровождается упражнениями, помогающими закрепить материал. • Научитесь работать со структурами данных, например, со списками и словарями, разберитесь, как они работают. • Напишите приложение, которое читает страницы Википедии, выполняет синтаксический разбор и обеспечивает навигацию по полученному дереву данных. • Анализируйте код и учитесь прогнозировать, как быстро он будет работать и сколько памяти при этом потреблять. • Пишите классы, реализующие интерфейс Map, пользуйтесь при этом хеш-таблицей и двоичным деревом поиска. • Создайте простой веб-поисковик с собственным поисковым роботом: он будет индексировать веб-страницы, сохранять их содержимое и возвращать нужные результаты.
Izuchite, kak sleduet realizovyvat effektivnye algoritmy na osnove vazhneyshikh struktur dannykh na yazyke Java, a takzhe kak izmeryat proizvoditelnost etikh algoritmov. Kazhdaya glava soprovozhdaetsya uprazhneniyami, pomogayushchimi zakrepit material. Nauchites rabotat so strukturami dannykh, naprimer, so spiskami i slovaryami, razberites, kak oni rabotayut. Napishite prilozhenie, kotoroe chitaet stranitsy Vikipedii, vypolnyaet sintaksicheskiy razbor i obespechivaet navigatsiyu po poluchennomu derevu dannykh. Analiziruyte kod i uchites prognozirovat, kak bystro on budet rabotat i skolko pamyati pri etom potreblyat. Pishite klassy, realizuyushchie interfeys Map, polzuytes pri etom khesh-tablitsey i dvoichnym derevom poiska. Sozdayte prostoy veb-poiskovik s sobstvennym poiskovym robotom: on budet indeksirovat veb-stranitsy, sokhranyat ikh soderzhimoe i vozvrashchat nuzhnye rezultaty.