บทนำ

 


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

·         การศึกษาลักษณะปัญหา

·         การออกแบบอัลกอริทึม

·         การวิเคราะห์อัลกอริทึม

อันเป็นสามเรื่องหลักที่จะได้เรียนกัน