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


