تمام الگوریتم‌ها باید شرایط و معیارهای زیر را دارا باشند:[۳]

  •  ;ورودی:

یک الگوریتم باید هیچ یا چندین پارامتر را به عنوان ورودی بپذیرد؛

  •  ;خروجی:

الگوریتم بایستی حداقل یک کمیت به عنوان خروجی (نتیجه عملیات) تولید کند؛

  •  ;قطعیت:

دستورات الگوریتم باید با زبانی دقیق، و بی‌ابهام بیان شوند. هر دستورالعمل نیز باید انجام‌پذیر باشد. دستورهایی نظیر «مقدار ۶ یا ۷ را به x اضافه کنید» یا «حاصل تقسیم پنج بر صفر را محاسبه کنید» مجاز نیستند؛ چرا که در مورد مثال اول، معلوم نیست که بالاخره چه عددی باید انتخاب شود، و در خصوص مثال دوم هم تقسیم بر صفر در ریاضیات تعریف نشده‌است.

  •  ;محدودیت:

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