จองอัลกอริทึมนอกเหนือจาก Cormen


21

ฉันได้ทำเนื้อหาส่วนใหญ่ในหนังสือ Intro to Algorithms ของ Cormen แล้วและฉันกำลังมองหาหนังสืออัลกอริทึมที่ครอบคลุมเนื้อหามากกว่าหนังสือของ Corman มีคำแนะนำอะไรบ้าง?

หมายเหตุ: ฉันถามสิ่งนี้ใน stackoverflow แต่ไม่พอใจกับคำตอบทั้งหมด

หมายเหตุ: การดูความคิดเห็นส่วนใหญ่ฉันคิดว่าฉันควรจะหาหนังสือที่ครอบคลุมเนื้อหาของหลักสูตร 787 ในคำอธิบายหลักสูตรนี้


1
ดูนี่
Kaveh

1
@Kaveh ฉันได้อ่าน Tardos แล้ว
Eugene

1
"ความรู้เบื้องต้นเกี่ยวกับอัลกอริทึม" ครอบคลุมเกือบทุกอย่างในขอบเขตของการออกแบบและการวิเคราะห์อัลกอริทึมและเป็นตำราเรียนที่ได้รับความนิยมมากที่สุดในโลกสำหรับหลักสูตรระดับปริญญาตรีและระดับบัณฑิตศึกษา แต่ละบทมีการแนะนำสั้น ๆ เกี่ยวกับเนื้อหาที่เกี่ยวข้องและยังมีรายการอ้างอิงที่ยาวมากสำหรับการศึกษาต่อในตอนท้าย หากคุณรู้สึกว่าคุณต้องการความเข้าใจอย่างลึกซึ้งในบางหัวข้อเช่นอัลกอริธึมกราฟทฤษฎีความซับซ้อน ฯลฯ วิธีที่ดีที่สุดของคุณคือการดูบรรณานุกรมของหนังสือและหากไม่ช่วยคุณอาจขอคำแนะนำจากผู้เชี่ยวชาญด้านโดเมน พื้นที่เฉพาะ
Ali

12
"รู้เบื้องต้นเกี่ยวกับอัลกอริทึม" ครอบคลุมเกือบทุกอย่างในขอบเขตของการออกแบบและวิเคราะห์อัลกอริทึม - อ่าถ้าเป็นจริง
JeffE

5
หนังสือเล่มหนึ่งที่ฉันชอบคือรู้เบื้องต้นเกี่ยวกับอัลกอริทึม: A Creative Approachโดย Udi Manber เขาสอนวิธีคิดอัลกอริธึมด้วยตัวคุณเอง สำหรับแต่ละอัลกอริทึมที่กล่าวถึงในตำราเรียนเขาให้ความก้าวหน้าที่เพิ่มขึ้นของส่วนหนึ่งเป็นครั้งแรกที่อธิบายถึงวิธีการที่ชัดเจนที่สุด มันเป็นข้อความที่ยอดเยี่ยมในความคิดของฉัน
Vinayak Pathak

คำตอบ:


9
I am looking for an algorithms book that covers material beyond Corman's book.

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

  • คุณอาจพบหนังสือทั่วไปจำนวนหนึ่งที่สำรวจหัวข้ออัลกอริทึมทั่วไปในเชิงลึกมากกว่า Corman แต่ส่วนใหญ่คุณจะต้องเริ่มเชี่ยวชาญหากหนังสือจะมีความลึกมากขึ้น มิฉะนั้นจะมีแนวโน้มที่จะป่องและขาดประโยชน์
  • ดังนั้นแทนที่จะมองหาหัวข้อเฉพาะ มีเนื้อหาขั้นสูงมากมายหากคุณมุ่งเน้นที่หัวข้อเฉพาะ คุณมีส่วนร่วมใน:
    • ขั้นตอนวิธีการเรียงลำดับ?
    • ขั้นตอนวิธีสตริง?
    • ขั้นตอนวิธีเชิงทฤษฎีจำนวน
    • อัลกอริทึมเมทริกซ์?
    • ขั้นตอนวิธีกราฟ?
    • อัลกอริทึมเรขาคณิต?
    • ขั้นตอนวิธีควอนตัม?
    • อัลกอริธึมแบบสุ่ม / สุ่ม?
    • โปรแกรมเชิงเส้น?
    • แบบจำลองการคำนวณ?
    • ทฤษฎีความซับซ้อนพื้นฐานและอัลกอริทึม?
  • หากคุณต้องการเข้าใจวิธีการหาอัลกอริธึมของคุณเองให้มุ่งเน้นไปที่การทำความเข้าใจโครงสร้างข้อมูลที่รู้จักซึ่งใช้ในพื้นที่ปัญหาที่คุณกำลังลงทุน การคำนวณ สิ่งเหล่านี้จะให้ความรู้สึกหยั่งรู้ในสิ่งที่เป็นไปได้สำหรับปัญหาที่กำหนดและแนวทางใดที่น่าจะมีความสำเร็จที่ดีกว่าแม้ว่าคุณจะมีเวลาพิสูจน์ขอบเขตที่ต่ำกว่าอย่างเป็นทางการก็ตาม

หนังสือหลายเล่มของ Papadimitriou หรือ Arora / Barak เกี่ยวกับ Complexity Theory น่าจะเป็นคำแนะนำของฉันในการติดตาม Corman เพื่อทำความเข้าใจให้ดียิ่งขึ้นว่าอัลกอริธึมเป็นไปได้อย่างไรและสร้างสัญชาตญาณขึ้นมา หนังสือระดับการวิจัยในหัวข้อที่เฉพาะเจาะจงมากขึ้นถ้าคุณต้องการความคุ้นเคยกับระดับความเข้าใจที่ทันสมัย


1
คุณถามคำถามที่ดีมาก ฉันสนใจอัลกอริธึมเชิงทฤษฎีเชิงตัวเลขดังนั้นฉันจึงได้ดูทฤษฎีจำนวนอัลกอริทึมของ Bach และ Shallit แล้ว ฉันกำลังมองหาหนังสือที่จะสร้างเทคนิคการพัฒนาอัลกอริทึมของฉันที่นอกเหนือจาก Cormen
Eugene

1
ฉันไม่ได้มองหาความลึก แต่เป็นความกว้าง ไม่ใช่ทฤษฎีความซับซ้อนพื้นฐาน แต่เป็นการแนะนำเกี่ยวกับอัลกอริทึม / โครงสร้างข้อมูลที่ฉันได้ยิน แต่ไม่ได้อยู่ใน CLRS (หรือนำเสนอเป็นปัญหา) เพื่อเพิ่มคลังแสงการเขียนโปรแกรมในสิ่งที่ฉันเคยได้ยิน สิ่งที่ต้องการ: A * ค้นหา, การค้นหาครั้งแรกที่ดีที่สุด, ตัวกรองบลูม, การบีบอัดไฟล์ / รูปภาพ, Burstsort, Hidden Markov Model, ตัวแยกประเภทซื่อๆ Bayes, อัลกอริทึมควอนตัม, รายการข้าม, TimSort, Treaps, Tries, อัลกอริทึม Voronoi ฯลฯ เป็นเพียงคอลเลกชันของบทความที่น่าสนใจในหลากหลายหัวข้อเช่น Programming Pearls ของเบนท์ลีย์
dr jimbob

16

ดังที่คนอื่น ๆ ได้จดไว้หนังสือเกี่ยวกับอัลกอริทึม (ขั้นสูง) จะถูกเลือกตามหัวข้อที่ดีที่สุด การอ้างอิงทั่วไปที่ดี แต่มีน้ำหนักมากพร้อมการวิเคราะห์อย่างเข้มงวดน่าจะเป็นศิลปะแห่งการเขียนโปรแกรมคอมพิวเตอร์โดย Knuth

สำหรับเทคนิคการวิเคราะห์คุณอาจสนใจในการแนะนำการวิเคราะห์อัลกอริทึมโดย Sedgewick และ Flajolet และCombinatorics อัลกอริทึมโดย Flajolet และ Sedgewick สำหรับทฤษฎีมากขึ้นในทิศทางเดียวกัน

สำหรับแนวทางการแก้ไขปัญหาอย่างหนักโปรดดูอัลกอริทึมสำหรับปัญหาหนักโดยHromkovič


5

คุณเคยดูคู่มือวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎีหรือไม่

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

แก้ไข

ฉันดูรายละเอียดหลักสูตรสำหรับ CS 787 และชั้นเรียนปัจจุบัน

มันบันทึก

ส่วนใหญ่เราจะใช้เอกสารจากวรรณกรรม สิ่งเหล่านี้จะถูกเผยแพร่เป็นเอกสารประกอบคำบรรยายหรือผ่านทางเว็บ หนังสือหลายเล่มเกี่ยวกับอัลกอริธึมจะถูกจองไว้ที่ห้องสมุด Wendt

ถ้าเป็นฉันฉันจะติดต่อไดเรกทอรีผู้สอน :)


ไม่ฉันไม่เห็นคู่มือ ขอบคุณสำหรับคำแนะนำ!
Eugene

ว้าว. ฉันหาข้อมูลหลักสูตรไม่พบ ขอบคุณสำหรับลิงค์
Eugene

-2

อัลกอริธึมของคอมพิวเตอร์มีความซับซ้อนและยากที่จะเข้าใจหัวข้อดังนั้นจึงไม่มีหนังสือที่ดีที่สุดเช่นหนังสือเพียงเล่มเดียวที่จะอธิบายทุกอย่างให้คุณ คุณต้องอ่านคู่ของพวกเขาเพื่อให้ได้รับหัวข้อนี้

นี่คือ 2 เซ็นต์ของฉันตาม 10 ปีของการเขียนโปรแกรมและเข้าร่วมสัมภาษณ์มากมาย:

  1. คู่มือการออกแบบอัลกอริทึมโดย Steven S. Skiena
  2. อัลกอริทึม ( http://algs4.cs.princeton.edu/home/ ) โดย Sedgwick
  3. อัลกอริทึมเบื้องต้นโดย Thomas Cormen
  4. อัลกอริทึมสำหรับการสัมภาษณ์โดย Adnan Aziz
  5. Python Algorithms: การเรียนรู้อัลกอริทึมพื้นฐานในภาษา Python
  6. อัลกอริทึมปลดล็อคโดย Thomas Cormen

อ้างอิง:


4
และทำไมคุณถึงแนะนำสิ่งเหล่านี้
กราฟิลส์

3
โดยเฉพาะอย่างยิ่งเหตุใดคุณจึงแนะนำ "ขั้นตอนวิธีเบื้องต้น" ของคอร์เมนและคณะเพื่อตอบคำถามที่ถามเกี่ยวกับหนังสือที่นอกเหนือจากหนังสือเล่มนั้น
David Richerby
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.