الگوریتم چیست؟

تعریف الگوریتم، ویژگی‌های یک الگوریتم درست، مراحل طراحی الگوریتم و آشنایی با شبه‌کد

تعریف الگوریتم

الگوریتم (Algorithm) مجموعه‌ای از مراحل مشخص و محدود برای حل یک مسئله است؛ مثل دستور پخت غذا: ورودی (مواد) داریم، مراحل مشخصی را طی می‌کنیم و به خروجی (غذا) می‌رسیم.

واژه الگوریتم از نام ریاضی‌دان ایرانی خوارزمی گرفته شده است!

ویژگی‌های الگوریتم درست

  1. ورودی مشخص: صفر یا چند ورودی دارد
  2. خروجی مشخص: حداقل یک خروجی تولید می‌کند
  3. قطعیت: هر مرحله دقیق و بدون ابهام است
  4. محدودیت: بعد از تعداد محدودی مرحله تمام می‌شود (حلقه بی‌نهایت نه!)
  5. اثربخشی: هر مرحله به‌سادگی قابل اجراست

مثال: الگوریتم پیدا کردن بزرگ‌ترین عدد

مسئله: از لیست اعداد، بزرگ‌ترین را پیدا کن.

  1. بزرگ‌ترین را برابر اولین عدد بگذار
  2. از عدد دوم تا آخر حرکت کن
  3. اگر عدد فعلی از بزرگ‌ترین بزرگ‌تر بود، بزرگ‌ترین را به‌روزرسانی کن
  4. در پایان، بزرگ‌ترین را برگردان

این الگوریتم برای n عدد، دقیقاً n−1 مقایسه انجام می‌دهد — نمی‌شود بهترش کرد!

الگوریتم خوب چه ویژگی‌هایی دارد؟

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

شبه‌کد (Pseudocode)

شبه‌کد، الگوریتم را به زبان انسانی ساخت‌یافته می‌نویسد؛ بدون قواعد سختگیرانه هیچ زبانی:

ALGORITHM FindMax(list)
    max ← list[0]
    FOR each item IN list
        IF item > max THEN
            max ← item
    RETURN max

مزیت: قبل از کدنویسی، منطق را طراحی و بازبینی می‌کنیم.

مراحل حل مسئله با الگوریتم

  1. فهم مسئله: ورودی، خروجی و محدودیت‌ها را مشخص کن
  2. طراحی: یک راه‌حل شبه‌کد بنویس (حتی کند!)
  3. پیاده‌سازی: به کد تبدیل کن
  4. تست: با مثال‌های ساده و حالت‌های مرزی چک کن
  5. بهینه‌سازی: کارایی را با Big O تحلیل و بهبود بده
نکته: همیشه اول راه‌حل ساده و درست بنویسید، بعد بهینه کنید. «اول کار کند، بعد سریع» — این قانون مهندسی نرم‌افزار است.

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل ساختار داده و الگوریتم است.

ابزارهای مرتبط