JavaRush /จาวาบล็อก /Random-TH /รีวิวหนังสือ: โครงสร้างข้อมูลและอัลกอริทึม Java โดย Rober...
Константин
ระดับ

รีวิวหนังสือ: โครงสร้างข้อมูลและอัลกอริทึม Java โดย Robert Laforet

เผยแพร่ในกลุ่ม
จุดแข็งของโปรแกรมเมอร์ทุกคนอยู่ที่ความรู้ของเขา ใช่ ความสามารถในการใช้ Google ได้ดีนั้นไม่ได้อยู่ในตำแหน่งสุดท้าย แต่ถึงกระนั้นก็ต้องมีความรู้จำนวนหนึ่งโดยขึ้นอยู่กับวิธีคิดของนักพัฒนาที่ถูกสร้างขึ้น ยิ่งความรู้นี้ลึกซึ้งเท่าไร โปรแกรมเมอร์ก็จะยิ่งมีโซลูชันที่น่าสนใจมากขึ้นเท่านั้น รีวิวหนังสือ: “โครงสร้างข้อมูลและอัลกอริทึม Java”, Robert Laforet - 1ส่วนหนึ่งของ "ฐาน" ดังกล่าวคือโครงสร้างข้อมูลและอัลกอริธึม คุณจะขยายความรู้ไปในทิศทางนี้ได้อย่างไร? เป็นทางเลือกให้หาหนังสือความรู้ที่จะกลายเป็นทุนสำรองและรากฐานสำหรับการศึกษาต่อ สำหรับ ฉันหนังสือประเภทนี้คือ“Java Data Structures and Algorithms” โดย Robert Laforetรีวิวหนังสือ: “โครงสร้างข้อมูลและอัลกอริทึม Java”, Robert Laforet - 2

เพื่อใคร

ผู้ชมหนังสือเล่มนี้อาจเป็นคนได้หลากหลาย เนื่องจากมันจะมีประโยชน์ทั้งสำหรับผู้ที่เพิ่งเข้าใจไวยากรณ์ของภาษาJavaและสำหรับการฝึกเขียนโปรแกรม เพื่อความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับคุณสมบัติของโครงสร้างข้อมูลและอัลกอริธึม .

เกี่ยวกับอะไร

หนังสือเล่มนี้เน้นไปที่การศึกษาและการใช้โครงสร้างข้อมูลและอัลกอริธึมในการเขียนโปรแกรม โดยจะสอนผู้อ่านว่าโครงสร้างข้อมูลกำหนดวิธีการจัดระเบียบข้อมูลในหน่วยความจำอย่างไร รวมถึงวิธีที่อัลกอริทึมดำเนินการต่างๆ บนโครงสร้างเหล่านี้ มาเจาะลึกลงไปอีกหน่อยแล้วดูว่าหนังสือเล่มนี้เกี่ยวกับอะไร:
  1. อาร์เรย์ การดำเนินการแทรก ค้นหา และลบในอาร์เรย์และอาร์เรย์ที่เรียงลำดับจะกล่าวถึงในรายละเอียด สาธิตการทำงานของการค้นหาเชิงเส้นและไบนารี่สำหรับอาร์เรย์แบบเรียงลำดับและไม่เรียงลำดับ คุณจะได้เรียนรู้ว่า O-syntax คืออะไร
  2. การเรียงลำดับ มีการพิจารณาวิธีการเรียงลำดับง่ายๆ สามวิธี: "การเรียงลำดับแบบบับเบิ้ล", "การเรียงลำดับการเลือก", "การเรียงลำดับการแทรก" จากหนังสือคุณจะได้เรียนรู้ว่าอันไหนช้าที่สุดและอันไหนง่ายที่สุด
  3. กองและคิว โครงสร้างข้อมูล เช่น สแต็ก คิว และคิวลำดับความสำคัญ ประสิทธิภาพ และการนำไปใช้งานใน Java ได้รับการพิจารณา
  4. รายการที่เชื่อมโยง หนังสือเล่มนี้พูดถึงรายการที่มีการเชื่อมโยงสองครั้งและเชื่อมโยงสองครั้ง ประสิทธิภาพ และวิธีการดำเนินการแทรก การค้นหา และการลบ ตัววนซ้ำและวิธีการที่ต้องการก็ครอบคลุมเช่นกัน
  5. การเรียกซ้ำ การเรียกซ้ำจะพิจารณาในสถานการณ์ต่างๆ เช่น การคำนวณตัวเลขสามเหลี่ยมและแฟกทอเรียล การสร้างแอนนาแกรม การค้นหาไบนารีแบบเรียกซ้ำ การไขปริศนาหอคอยฮานอย การใช้การเรียงลำดับแบบผสาน การแก้ปัญหากระเป๋าเป้สะพายหลัง
  6. การเรียงลำดับที่ไม่สำคัญ มีการพิจารณาวิธีการขั้นสูงเพิ่มเติม: การเรียงลำดับเชลล์, การเรียงลำดับอย่างรวดเร็วและการเรียงลำดับ Radix, อัลกอริธึม, ประสิทธิภาพ
  7. ต้นไม้ไบนารี มีการพิจารณาแผนผังการค้นหาแบบไบนารีที่สมดุล วิธีการทำงาน การดำเนินการแทรกและการลบ การข้ามประเภทต่างๆ การค้นหาค่าต่ำสุดและสูงสุด ค้นหาตัวตายตัวแทน Huffman Code ก็จะได้รับการคุ้มครองเช่นกัน
  8. ต้นไม้สีแดงและสีดำ เราพิจารณาหนึ่งในต้นไม้ที่มีความสมดุลที่มีประสิทธิภาพสูงสุด การหมุนและการเปลี่ยนสีที่จำเป็นสำหรับการปรับสมดุล
  9. ต้น 2-3-4. ต้นไม้ประเภทนี้ได้รับการอธิบายไว้เป็นตัวอย่างหนึ่งของต้นไม้หลายเส้นทาง โดยจะมีการหารือถึงการทำงานและความสัมพันธ์กับต้นไม้บีซึ่งใช้สำหรับจัดเก็บข้อมูลภายนอก
  10. ตารางแฮช การแฮชและวิธีการต่างๆ ครอบคลุมอยู่ เช่น การตรวจสอบเชิงเส้นและกำลังสอง การแฮชสองครั้ง และวิธีการต่อสายโซ่ คุณยังสามารถเรียนรู้วิธีการใช้แฮชเพื่อจัดระเบียบพื้นที่จัดเก็บไฟล์ภายนอก
  11. ปิรามิด นี่คือแผนผังชนิดพิเศษที่ใช้ในการดำเนินการคิวลำดับความสำคัญอย่างมีประสิทธิภาพ หนังสือเล่มนี้กล่าวถึงกลไกการทำงานของการแทรก การลบ และการจัดเรียงใหม่ นอกจากนี้คุณยังจะได้เรียนรู้ว่าการเรียงสับเปลี่ยนแบบเสี้ยมคืออะไร และสามารถนำมาใช้ใน Java ได้อย่างไร
  12. กราฟ กราฟแบบถ่วงน้ำหนักและแบบไม่ถ่วงน้ำหนัก อัลกอริธึมสำหรับการค้นหากราฟ และอัลกอริธึมที่ใช้ในการค้นหาเส้นทางการเคลื่อนที่ที่สั้นที่สุดจะถูกนำเสนอ
เพื่อความชัดเจนยิ่งขึ้น แต่ละบทจะมีการปรับใช้โครงสร้างข้อมูลที่เป็นปัญหาของตนเอง ตัวอย่างเช่น หากนี่คือรายการที่มีการเชื่อมโยงเดี่ยว จะมีการมอบตัวอย่างของคลาสที่ใช้ฟังก์ชันการทำงานที่อธิบายไว้ บทสุดท้ายของหนังสือต่อยอดความรู้ที่ได้รับจากบทที่แล้วเริ่มรวบรวมความรู้ทั้งหมดไว้ในภาพเดียว ตัวอย่างเช่น คุณจะสามารถสร้างแนวคิดได้อย่างชัดเจนว่าจะใช้โครงสร้างข้อมูลใดในสถานการณ์ใด นอกจากนี้รีวิวหนังสือ: “โครงสร้างข้อมูลและอัลกอริทึม Java”, Robert Laforet - 3ยังมีแบบฝึกหัดเล็กๆ น้อยๆ ในตอนท้ายของแต่ละบทด้วย บางส่วนเกี่ยวข้องกับการทำสิ่งต่างๆ ด้วย แอป Workshopในขณะที่บางส่วนมอบหมายงานเล็กๆ ให้กับคุณในโค้ดโดยตรง

แอพเวิร์กช็อปคืออะไร

แอปพลิเคชัน การประชุมเชิงปฏิบัติการใช้เพื่อสาธิตโครงสร้างและอัลกอริทึมเหล่านี้ แอปพลิเคชันได้รับการออกแบบเป็นแอปเพล็ต Java ที่สามารถเรียกใช้ในเบราว์เซอร์ แอปพลิเคชันเวิร์กชอปจะสร้างไดอะแกรมกราฟิกที่แสดงวิธีการทำงานของอัลกอริทึมหรือโครงสร้างข้อมูล ตัวอย่างเช่น ในแอปพลิเคชันหนึ่งที่ออกแบบมาเพื่อแสดงคอลัมน์ที่เรียงลำดับจากน้อยไปหามาก แต่ละครั้งที่คุณคลิกปุ่มบนฮิสโตแกรม ขั้นตอนถัดไปจะถูกดำเนินการ ในกรณีนี้ค่าของตัวแปรที่เกี่ยวข้องกับอัลกอริทึมนี้จะปรากฏขึ้นเพื่อให้คุณเห็นว่าโค้ดถูกดำเนินการอย่างไร (ชวนให้นึกถึงคำอธิบายของดีบักเกอร์ใช่ไหม)

วิธีดาวน์โหลดและติดตั้ง Workshop

  1. คุณสามารถดาวน์โหลดแอพเพล็ตได้ที่ นี่Рецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 4
  2. คลิกที่WorkshopApplets.ZIPและดาวน์โหลดไฟล์เก็บถาวรพร้อมแอปเพล็ต
  3. เพื่อทำความเข้าใจแอปเพล็ต คุณสามารถอ่านหัวข้อ นี้ และแสดงความคิดเห็นได้

ข้อดีของหนังสือ

  • อ่านง่ายมาก มีการอธิบายตัวอย่างมากมายเกือบ "บนนิ้วของคุณ";
  • เปิดหูเปิดตาของคุณสู่สิ่งที่ "คลาสสิก" มากมายโดยไม่ต้องใช้สูตรทางคณิตศาสตร์ที่ซับซ้อน เกือบจะไม่มีพวกเขาแล้ว :)
  • แม้ว่าตัวอย่างจะอยู่ในภาษา Java แต่การกระทำที่เกิดขึ้นในโค้ดจะได้รับการอธิบายอย่างละเอียดด้วยข้อความที่ตามมาและความคิดเห็นในโค้ด ดังนั้นผู้ใช้ภาษาการเขียนโปรแกรมใด ๆ จึงสามารถอ่านได้เนื่องจากตัวอย่างโค้ดนั้นค่อนข้างง่าย: พวกเขาอ่านได้เกือบจะเหมือนกับรหัสเทียม

ข้อเสียของหนังสือ

  • แม้จะมีคำอธิบาย "บนนิ้ว" แต่ก็มีช่องว่างอยู่ เพื่ออธิบายการเรียงลำดับอาร์เรย์ผู้เขียนวาดทีมฟุตบอล แต่ในทางปฏิบัติแล้วการเรียงลำดับของเชลล์ไม่ได้อธิบายไว้ที่นั่น: ฉันไม่เข้าใจและอ่านเกี่ยวกับเรื่องนี้บนอินเทอร์เน็ต
  • อาจมีการพิมพ์ผิด มักจะอยู่ในรูปภาพหรือตาราง
  • รหัสบางส่วนค่อนข้างล้าสมัย

อะนาล็อก

ฉันแนะนำอะนาล็อกของหนังสือเล่มนี้หรือเล่มที่ตามมา (สำหรับผู้ที่ต้องการเรียนต่อ):
  • “อัลกอริทึมใน Java” โดย Robert Sedgwick;
  • “อัลกอริทึม: การสร้างและการวิเคราะห์” โดย Thomas Cormen

บรรทัดล่าง

หนังสือเล่มนี้มีข้อเสียเล็กน้อย ดังนั้นจึงคุ้มค่าที่จะอ่าน โดยอธิบายหัวข้อพื้นฐานและพื้นฐานต่างๆ อย่างชัดเจน เช่น การเรียงลำดับ อาร์เรย์ ต้นไม้ คอลเลกชัน กราฟ และอื่นๆ อย่างชัดเจน เนื่องจากหนังสือเล่มนี้ไม่ได้เชื่อมโยงกับJava มาก นัก ฐานความรู้ที่ได้รับจากการศึกษาจึงจะเป็นประโยชน์ในภาษาการเขียนโปรแกรมอื่นๆ ต้องมีต้องอ่าน - หากคุณเป็นนักพัฒนาРецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 6
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION