5
อะไรคือเหตุผลในการเรียนรู้อัลกอริทึม / โครงสร้างข้อมูลที่แตกต่างกันซึ่งให้บริการเพื่อจุดประสงค์เดียวกัน
ฉันสงสัยเกี่ยวกับคำถามนี้ตั้งแต่ฉันเป็นนักเรียนระดับปริญญาตรี มันเป็นคำถามทั่วไป แต่ฉันจะทำอย่างละเอียดพร้อมตัวอย่างด้านล่าง ฉันได้เห็นอัลกอริทึมมากมาย - ตัวอย่างเช่นสำหรับปัญหาการไหลสูงสุดฉันรู้อัลกอริทึม 3 อย่างที่สามารถแก้ปัญหาได้: ฟอร์ด - ฟัลเกอร์สัน, เอ็ดมันด์ - คาร์ปและดินิกโดย Dinic มีความซับซ้อนที่สุด สำหรับโครงสร้างข้อมูล - ตัวอย่างเช่น heap - มี binary heaps, binomial heaps & Fibonacci heaps โดยที่ Fibonacci heap มีความซับซ้อนโดยรวมที่ดีที่สุด สิ่งที่ทำให้ฉันสับสนคือ: มีเหตุผลใดบ้างที่เราจำเป็นต้องรู้จักพวกเขาทั้งหมด? ทำไมไม่เพียงแค่เรียนรู้และทำความคุ้นเคยกับความซับซ้อนที่ดีที่สุด? ฉันรู้ว่ามันดีที่สุดถ้าเรารู้จักพวกเขาทั้งหมดฉันแค่อยากรู้ว่ามีเหตุผล "ที่ถูกต้องมากกว่า" เช่นปัญหา / อัลกอริทึมบางอย่างสามารถแก้ไขได้โดยใช้Aแต่ไม่ใช่Bเป็นต้น