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