الگوریتم‌ها تعیین میزان منابعی است که برای اجرای هر الگوریتم لازم است. این منابع معمولاً زمان و حافظه در نظر گرفته می‌شوند. کارآئی یا پیچیدگی هر الگوریتم را با تابعی نشان می‌دهند که تعداد مراحل لازم برای اجرای الگوریتم را برحسب طول داده ورودی، یا میزان محل‌های لازم حافظه را بر حسب طول داده ورودی نشان می‌دهد. زمان متوسط برای بررسی هر الگوریتم با o نشان داده می‌شود. غالبا مشاهده می‌شود که یک مسئله را با استفاده از چندین تکنیک مختلف می‌توان حل نمود ولی فقط یکی از آنها به الگوریتمی منجر می‌شود که از بقیه سریعتر است.
به عنوان مثال براي مرتب سازي چندين عدد از كوچك به بزرگ چندين راه حل وجود دارد كه شايد در بين تعداد اعداد كم، سرعت آن‌ها قابل ملاحظه نباشد، اما وقتي تعداد اعداد زياد مي‌شود، تفاوت سرعت واقعا چشمگير است.مثلا وقتي قرار باشد 10 ميليون عدد را مرتب كنيم، با الگوريتم مرتب سازي درجي تقريبا 2 روز و با الگوريتم ادغامي تنها20 دقيقه وقت نياز خواهد بود.