JavaRush /Blog Java /Random-VI /Đánh giá sách: “Cấu trúc dữ liệu và thuật toán Java”, Rob...

Đánh giá sách: “Cấu trúc dữ liệu và thuật toán Java”, Robert Laforet

Xuất bản trong nhóm
Sức mạnh của mỗi lập trình viên nằm ở kiến ​​thức của anh ta. Đúng vậy, khả năng google tốt cũng không phải xếp cuối cùng, nhưng tuy nhiên, phải có một lượng kiến ​​thức nhất định, trên cơ sở đó hình thành nên cách tư duy của lập trình viên. Kiến thức này càng sâu thì lập trình viên càng có thể đưa ra nhiều giải pháp thú vị hơn. Review sách: “Cấu trúc dữ liệu và thuật toán Java”, Robert Laforet - 1Một trong những phần của “cơ sở” như vậy là cấu trúc dữ liệu và thuật toán. Làm thế nào bạn có thể mở rộng kiến ​​thức của mình theo hướng này? Ngoài ra, hãy tìm một cuốn sách, kiến ​​thức từ đó sẽ trở thành nguồn dự trữ và nền tảng chống cháy cho việc nghiên cứu sâu hơn. Đối với tôi, cuốn sách như vậy là “Thuật toán và cấu trúc dữ liệu Java” của Robert Laforet .Review sách: “Cấu trúc dữ liệu và thuật toán Java”, Robert Laforet - 2

Cho ai

Đối tượng của cuốn sách này có thể là rất nhiều người, vì nó sẽ hữu ích cho cả những người vừa mới nắm vững cú pháp của ngôn ngữ Java và cho các lập trình viên đang hành nghề để hiểu sâu hơn về các tính năng của cấu trúc dữ liệu và thuật toán .

Về cái gì

Cuốn sách này được dành cho việc nghiên cứu và sử dụng các cấu trúc dữ liệu và thuật toán trong lập trình. Nó sẽ dạy cho người đọc cách cấu trúc dữ liệu xác định cách tổ chức dữ liệu trong bộ nhớ và cách các thuật toán thực hiện các hoạt động khác nhau trên các cấu trúc này. Hãy cùng tìm hiểu sâu hơn một chút và xem chính xác cuốn sách này nói về điều gì:
  1. Mảng. Các thao tác chèn, tìm kiếm và xóa trong mảng và mảng theo thứ tự được trình bày chi tiết. Trình bày hoạt động tìm kiếm tuyến tính và nhị phân cho các mảng có thứ tự và không có thứ tự. Bạn cũng sẽ tìm hiểu cú pháp O là gì.
  2. Sắp xếp. Ba phương pháp sắp xếp đơn giản được xem xét: “sắp xếp bong bóng”, “sắp xếp lựa chọn”, “sắp xếp chèn”. Từ cuốn sách, bạn sẽ biết cái nào chậm nhất và cái nào đơn giản nhất.
  3. Ngăn xếp và hàng đợi. Các cấu trúc dữ liệu như ngăn xếp, hàng đợi và hàng đợi ưu tiên, tính hiệu quả và cách triển khai của chúng trong Java đều được xem xét.
  4. Danh sách liên kết. Cuốn sách nói về danh sách liên kết đôi và danh sách hai chiều, tính hiệu quả của chúng cũng như cách thực hiện các thao tác chèn, tra cứu và xóa. Các trình vòng lặp và những phương thức chúng yêu cầu cũng được đề cập.
  5. Đệ quy. Phép đệ quy được xem xét trong nhiều tình huống khác nhau, như: tính số tam giác và giai thừa, xây dựng phép đảo chữ, thực hiện tìm kiếm nhị phân đệ quy, giải câu đố Tháp Hà Nội, thực hiện phép sắp xếp hợp nhất, giải bài toán ba lô.
  6. Sắp xếp không tầm thường. Các phương pháp nâng cao hơn được xem xét: Sắp xếp Shell, sắp xếp nhanh và sắp xếp cơ số, thuật toán, hiệu quả của chúng.
  7. Cây nhị phân. Cây tìm kiếm nhị phân cân bằng được xem xét, cách chúng hoạt động, các thao tác chèn và xóa, các kiểu duyệt khác nhau, tìm kiếm tối thiểu và tối đa, tìm kiếm người kế nhiệm. Mã Huffman cũng sẽ được đề cập.
  8. Cây đỏ và đen. Chúng tôi coi một trong những loại cây cân bằng hiệu quả nhất là các hoạt động xoay và chuyển màu của chúng cần thiết để cân bằng.
  9. Cây 2-3-4. Những cây thuộc loại này được mô tả như một ví dụ về cây đa đường; hoạt động và mối quan hệ của chúng với cây B, được sử dụng để lưu trữ dữ liệu ngoài, sẽ được thảo luận.
  10. Bảng băm. Băm và các phương pháp khác nhau của nó được đề cập, chẳng hạn như thăm dò tuyến tính và bậc hai, băm kép và phương pháp xâu chuỗi. Bạn cũng có thể tìm hiểu cách sử dụng hàm băm để tổ chức lưu trữ tệp bên ngoài.
  11. Kim tự tháp. Đây là một loại cây đặc biệt được sử dụng để triển khai hiệu quả các hàng đợi ưu tiên. Cuốn sách thảo luận về cơ chế hoạt động của việc chèn, xóa và sắp xếp lại. Bạn cũng sẽ tìm hiểu hoán vị hình chóp là gì và cách triển khai nó trong Java.
  12. Đồ thị. Các đồ thị có trọng số và không có trọng số, các thuật toán tìm kiếm thông qua chúng và các thuật toán được sử dụng để tìm đường đi ngang ngắn nhất được trình bày.
Để rõ ràng hơn, mỗi chương cung cấp cách triển khai cấu trúc dữ liệu được đề cập riêng. Ví dụ: nếu đây là danh sách liên kết đơn thì sẽ đưa ra một ví dụ về lớp thực hiện chức năng được mô tả. Chương cuối của cuốn sách, dựa trên kiến ​​thức thu được từ các chương trước, bắt đầu tập hợp tất cả kiến ​​thức vào một bức tranh duy nhất. Ví dụ, bạn sẽ có thể hình thành ý tưởng rõ ràng về việc sử dụng cấu trúc dữ liệu nào trong tình huống nào: Review sách: “Cấu trúc dữ liệu và thuật toán Java”, Robert Laforet - 3Ngoài ra còn có các bài tập nhỏ ở cuối mỗi chương. Một số trong số chúng liên quan đến việc thực hiện mọi việc với ứng dụng Workshop , trong khi một số khác giao cho bạn các nhiệm vụ nhỏ trực tiếp trong mã.

Ứng dụng hội thảo là gì

Các ứng dụng hội thảo được sử dụng để chứng minh các cấu trúc và thuật toán này . Các ứng dụng được thiết kế dưới dạng các ứng dụng Java có thể chạy trên trình duyệt. Các ứng dụng hội thảo tạo sơ đồ đồ họa cho thấy cách hoạt động của thuật toán hoặc cấu trúc dữ liệu. Ví dụ: trong một ứng dụng được thiết kế để hiển thị các cột được sắp xếp theo thứ tự tăng dần, mỗi lần bạn nhấp vào nút trên biểu đồ, bước tiếp theo sẽ được thực hiện. Trong trường hợp này, giá trị của các biến liên quan đến thuật toán này sẽ được hiển thị để bạn có thể thấy mã được thực thi như thế nào (gợi nhớ đến mô tả của trình gỡ lỗi , phải không?).

Cách tải xuống và cài đặt Workshop

  1. Bạn có thể tải xuống applet tại đây . Рецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 4
  2. Nhấp vào WorkshopApplets.ZIP và tải xuống kho lưu trữ có applet.
  3. Để hiểu các applet, bạn có thể đọc chủ đề này và các bình luận về nó.

Ưu điểm của cuốn sách

  • rất dễ đọc, nhiều ví dụ được giải thích gần như “trên đầu ngón tay”;
  • mở rộng tầm mắt của bạn với nhiều thứ “cổ điển”, không cần sử dụng các công thức toán học phức tạp. Chà, gần như không có họ :)
  • Mặc dù các ví dụ đều bằng Java, nhưng các hành động xảy ra trong mã được giải thích rất chi tiết bằng văn bản theo sau và các nhận xét trong mã. Do đó, người dùng bất kỳ ngôn ngữ lập trình nào cũng có thể đọc được nó vì các ví dụ mã khá đơn giản: chúng đọc gần giống như mã giả.

Nhược điểm của cuốn sách

  • Dù giải thích “trên đầu ngón tay” nhưng trong đó vẫn có những khoảng trống. Để giải thích về mảng sắp xếp, tác giả vẽ ra một đội bóng đá, nhưng việc sắp xếp Shell thực tế không được mô tả ở đó: Tôi không thể hiểu nó và đọc về nó trên Internet;
  • Có thể có lỗi đánh máy, thường là ở hình ảnh hoặc bảng biểu;
  • một số mã đã khá lỗi thời.

chất tương tự

Tôi khuyên bạn nên đọc những cuốn tương tự của cuốn sách này hoặc những cuốn tiếp theo (dành cho những ai muốn tiếp tục nghiên cứu):
  • “Thuật toán trong Java” của Robert Sedgwick;
  • “Thuật toán: Xây dựng và phân tích” của Thomas Cormen.

Điểm mấu chốt

Cuốn sách có ít khuyết điểm nên thực sự rất đáng đọc. Nó giải thích rõ ràng nhiều chủ đề cơ bản, cơ bản, chẳng hạn như các loại, mảng, cây, bộ sưu tập, đồ thị, v.v. Vì cuốn sách không gắn chặt với Java nên nền tảng kiến ​​thức thu được từ việc nghiên cứu nó sẽ hữu ích trong các ngôn ngữ lập trình khác. Phải có, phải đọc - nếu bạn là nhà phát triển.Рецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 6
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION