مجموعه محدودی از دستورالعملها که با دنبال کردن آنها هدف خاصی برآورده میشود را الگوریتم مینامند. در هر الگوریتم مواردی همچون ورودی،خروجی،قطعیت،محدویت و کارایی قابل بررسی میباشند. به علت وجود بیش از یک راه حل برا یک مساله، الگوریتمهای متفاوتی مورد توجه قرار میگیرند که برای انتخاب یکی از آنها فاکتورهایی چون ملزومات برنامهنویسی، تئوری پیچیدگی روی ملزومات حافظهای و عملیاتی متمرکز میشود.