ผลต่างระหว่างรุ่นของ "ขั้นตอนวิธี"

เพิ่มขึ้น 3,049 ไบต์ ,  14 ปีที่แล้ว
ไม่มีคำอธิบายอย่างย่อ
ไม่มีความย่อการแก้ไข
 
ไม่มีความย่อการแก้ไข
ในปัจจุบันได้มีการคิดค้นอัลกอริทึมหลายอย่างสำหรับแก้ปัญหาที่แตกต่างกัน ออกไป เพื่อออกแบบอัลกอริทึมสำหรับแก้ปัญหาต่าง ๆ คุณอาจจะถามตัวเองว่า ปัญหาชนิดไหนสามารถแก้ได้ด้วย divide-and-conquer, dynamic programming, greedy techniques หรือ อัลกอริทึมอื่น ๆ
'''อัลกอริทึม''' คือกระบวนการแก้ไขปัญหาที่ปราศจากความกำกวม
 
Divide-and-conquer
 
อัลกอริทึมนี้แก้ปัญหาด้วยการแตกปัญหาหลักออกเป็นปัญหาย่อย ๆ แล้วรวมคำตอบ ของปัญหาย่อยนี้เข้าด้วยกันทำให้ได้คำตอบของปัญหาหลัก โดยอัลกอริทึมนี้เราสามารถ หาคำตอบของปัญหาได้ง่ายขึ้นจากการรวมคำตอบของปัญหาหลัก
Dynamic Programming
 
บางครั้งเราไม่สามารถแบ่งปัญหาออกเป็นปัญหาย่อย ๆ ที่ไม่เกี่ยวข้องกันได้ ถ้าเรา พยายามจะแบ่งปัญหานั้น ๆ ออกเป็นปัญหาย่อยที่เล็กที่สุด อัลกอริทึมของคุณอาจ จะใช้เวลาทำงานเป็นแบบ exponential ได้ แต่เวลาที่เราแก้ปัญหาต่าง ๆ เรามักจะ พบว่าเราต้องแก้ปัญหาย่อย ๆ ที่เหมือนกันแบบซ้ำไปซ้ำมา เพื่อหลีกเลี่ยงการคำนวน หาคำตอบซ้ำ ๆ ซาก ๆ dynamic programming จะแก้ปัญหาย่อย ๆ เหล่านั้นเพียง ครั้งเดียวแล้วเก็บผลลัพท์ไว้ ถ้าหากพบว่าต้องแก้ปัญหาย่อยนั้นซ้ำอีกเราก็สามารถนำ คำตอบมาจากคำตอบที่เคยคำนวณเก็บไว้ได้
Greedy Algorithms
 
Greedy Algorithms หาคำตอบโดยเลือกทางที่ดีที่สุดที่พบได้ในขณะนั้นเพื่อให้ได้คำตอบ ที่ดีที่สุด Greedy Algorithms ไม่สามารถหาคำตอบของปัญหาที่ดีที่สุดได้เสมอไป แต่ใน หลาย ๆ กรณี Greedy Algorithms สามารถหาคำตอบที่ดีที่สุดของปัญหานั้น ๆ ได้
ผู้ใช้นิรนาม