ในปัจจุบันได้มีการคิดค้นอัลกอริทึมหลายอย่างสำหรับแก้ปัญหาที่แตกต่างกัน ออกไป เพื่อออกแบบอัลกอริทึมสำหรับแก้ปัญหาต่าง ๆ คุณอาจจะถามตัวเองว่า ปัญหาชนิดไหนสามารถแก้ได้ด้วย divide-and-conquer, dynamic programming, greedy techniques หรือ อัลกอริทึมอื่น ๆ