JavaRush /Java Blog /Random-TL /Pagsusuri ng libro: "Mga Istraktura at Algorithm ng Data ...

Pagsusuri ng libro: "Mga Istraktura at Algorithm ng Data ng Java", Robert Laforet

Nai-publish sa grupo
Ang lakas ng bawat programmer ay nasa kanyang kaalaman. Oo, ang kakayahang mag-google nang maayos ay wala rin sa huling lugar, ngunit gayunpaman, dapat mayroong isang tiyak na halaga ng kaalaman, sa batayan kung saan nabuo ang paraan ng pag-iisip ng developer. Ang mas malalim na kaalaman na ito, mas kawili-wiling mga solusyon na maaaring mabuo ng isang programmer. Рецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 1Ang isa sa mga bahagi ng naturang "base" ay mga istruktura at algorithm ng data. Paano mo mapapalawak ang iyong kaalaman sa direksyong ito? Bilang isang pagpipilian, maghanap ng isang libro, ang kaalaman kung saan ay magiging isang hindi masusunog na reserba at pundasyon para sa karagdagang pag-aaral. Para sa akin, ang naturang libro ay "Java Data Structures and Algorithms" ni Robert Laforet .Рецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 2

Para kanino

Ang madla para sa aklat na ito ay maaaring isang napakalawak na hanay ng mga tao, dahil magiging kapaki-pakinabang ito kapwa para sa mga kakabisado pa lang ng syntax ng wikang Java , at para sa pagsasanay ng mga programmer, para sa mas malalim na pag-unawa sa mga tampok ng mga istruktura at algorithm ng data. .

Tungkol Saan

Ang aklat na ito ay nakatuon sa pag-aaral at paggamit ng mga istruktura ng data at mga algorithm sa programming. Ituturo nito sa mambabasa kung paano tinutukoy ng mga istruktura ng data ang paraan ng pagkakaayos ng data sa memorya, at kung paano gumaganap ang mga algorithm ng iba't ibang operasyon sa mga istrukturang ito. Maghukay tayo nang mas malalim at tingnan kung tungkol saan ang aklat na ito:
  1. Mga array. Ang pagpasok, paghahanap, at pagtanggal ng mga pagpapatakbo sa mga array at nakaayos na mga array ay sakop nang detalyado. Nagpapakita ng operasyon ng linear at binary na paghahanap para sa ordered at unordered arrays. Malalaman mo rin kung ano ang O-syntax.
  2. Pag-uuri. Isinasaalang-alang ang tatlong simpleng paraan ng pag-uuri: "bubble sort", "selection sort", "insertion sort". Mula sa aklat ay malalaman mo kung alin ang pinakamabagal at alin ang pinakasimple.
  3. Mga stack at pila. Isinasaalang-alang ang mga istruktura ng data gaya ng stack, queue at priority queue, ang kanilang pagiging epektibo, at pagpapatupad sa Java.
  4. Mga naka-link na listahan. Pinag-uusapan ng aklat ang tungkol sa mga dobleng naka-link at naka-double-link na listahan, ang kahusayan ng mga ito, at kung paano isinasagawa ang mga pagpapatakbo ng pagpapasok, paghahanap, at pagtanggal. Sinasaklaw din ang mga iterator at kung anong mga pamamaraan ang kailangan nila.
  5. Mga recursion. Isinasaalang-alang ang mga recursion sa iba't ibang sitwasyon, tulad ng: pagkalkula ng mga triangular na numero at factorial, pagbuo ng mga anagram, pagsasagawa ng recursive binary search, paglutas ng Tower of Hanoi puzzle, pagpapatupad ng merge sort, paglutas ng problema sa knapsack.
  6. Mga di-maliit na pag-uuri. Isinasaalang-alang ang mas advanced na mga pamamaraan: Pag-uuri ng shell, mabilis na pag-uuri at pag-uuri ng radix, ang kanilang mga algorithm, kahusayan.
  7. Двоичные деревья. Рассматриваются сбалансированные деревья двоичного поиска, How они работают, их операции вставки, удаления, различные виды обхода, поиск минимума и максимума, поиск преемника. Также будет рассмотрен Код Хаффмана.
  8. Красно-черные деревья. Рассматривается одна из самых эффективных разновидностей сбалансированных деревьев, их операции поворота и переключения цветов, необходимые для балансировки.
  9. Деревья 2-3-4. Описываются деревья данного вида How пример многопутевых деревьев, рассматривается их работа, отношение с В-деревьями, которые используются для внешнего хранения данных.
  10. Хеш-таблицы. Рассматривается хеширование и его различные методы, такие How линейное и квадратичное пробирование, двойное хеширование и метод цепочек. Также вы сможете узнать, How можно применить хеширование для организации внешнего хранения файлов.
  11. Пирамиды. Это особый тип дерева, используемый для эффективной реализации приоритетных очередей. В книге рассматриваются механизмы работы операции вставки, удаления, перестановки. Также вы узнаете, что такое пирамидальная перестановка и How её можно реализовать в Java.
  12. Графы. Приводятся взвешенные и невзвешенные графы, алгоритмы для поиска по ним, алгоритмы, применяемые для нахождения кратчайших путей обхода.
Для большей наглядности в каждой главе приводится собственная реализация рассматриваемой структуры данных. Например, если это односвязный список, будет приведен пример класса, реализующего описанный функционал. Последняя глава книги, отталкиваясь от знаний, полученных из предыдущих глав, начинает собирать все знания в единую картину. К примеру, вы сможете четко сформировать представление о том, Howую структуру данных в Howой ситуации использовать:Рецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 3Также в конце каждой главы есть небольшие упражнения. Некоторые из них связаны с выполнением операций с приложением Workshop, а другие дают вам небольшие задания непосредственно в codeе.

What такое applications Workshop

Для демонстрации данных структур и алгоритмов используются applications Workshop. Приложения оформлены в виде апплетов Java, которые можно запускать в браузере. Приложения Workshop строят графические схемы, которые показывают, How работает алгоритм or структура данных. К примеру, в одном из приложений, предназначенном для отображения сортировки столбцов по возрастанию, при каждом нажатии кнопки на гистограмме будет выполняться следующий шаг. При этом будут выводиться значения переменных, задействованных в данном алгоритме, чтобы было видно, How происходит выполнение codeа (напоминает описание дебагера, не так ли?).

Как скачать и установить Workshop

  1. Скачать апплеты можно вот тут. Рецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 4
  2. Нажимаете на WorkshopApplets.ZIP и качаете архив с апплетами.
  3. Whatбы разобраться с апплетами, можно почитать вот этот топик и комменты к нему.

Плюсы книги

  • очень легко читается, многие примеры объясняются почти "на пальцах";
  • открывает глаза на многие “классические” вещи, без применения сложных математических формул. Ну, почти без них :)
  • несмотря на то, что примеры приведены на языке Java, действия, происходящие в codeе, весьма подробно объясняются текстом после и комментариями в codeе. Поэтому ее может читать пользователь любого языка программирования, так How примеры codeа довольно просты: они читаются почти How псевдоcode.

Минусы книги

  • несмотря на объяснение "на пальцах", в нем бывают пробелы. Для объяснения сортировки массивов автор рисует футбольную команду, а sorting Шелла там практически не описана: я не смог её понять и читал о ней в интернете;
  • возможны опечатки, How правило в изображениях or tableх;
  • некоторый code весьма устаревший.

Аналоги

Аналогами этой книги or следующими за ней (для тех кто хочет продолжать изучение) я советую:
  • “Алгоритмы на Java” Роберта Седжвика;
  • “Алгоритмы: построение и анализ” Томаса Кормена.

Итог

Минусов у книги немного, так что она действительно стоит прочтения. В ней доступно объясняется множество базовых, основополагающих тем, таких How различные сортировки, массивы, деревья, коллекции, графы и так далее. Так How книга не сильно привязывается к Java, база знаний, полученных от ее изучения, будет полезна и в других языках программирования. Must have, must read — если вы разработчик.Рецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 6
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION