طراحی الگوریتم


تحلیل مجانبی

تحلیل مجانبی


در طراحی و تحلیل الگوریتم‌ها، یکی از مهم‌ترین ابزارها «تحلیل مجانبی» یا Asymptotic Analysis است. منظور از این تحلیل، بررسی رفتار یک الگوریتم در حالتی است که اندازه ورودی به سمت بی‌نهایت میل می‌کند. به عبارت دیگر، ما به‌جای توجه به اجرای واقعی برنامه روی سخت‌افزار یا زبان برنامه‌نویسی خاص، رشد تابع زمان یا حافظه را در بلندمدت بررسی می‌کنیم.


این شیوه به ما اجازه می‌دهد تا بدون وابستگی به جزئیات اجرایی، کارایی الگوریتم‌ها را به شکل کلی، دقیق و قابل مقایسه بسنجیم.


چرا تحلیل مجانبی اهمیت دارد؟


نمادهای رایج در تحلیل مجانبی

برای بیان حدود رشد توابع از نمادهای خاصی استفاده می‌شود که هرکدام معنای مشخصی دارند:

نماد نام مفهوم کاربرد
O(g(n)) اُو بزرگ کران بالا بدترین حالت
Ω(g(n)) امگا کران پایین بهترین حالت
Θ(g(n)) تتا کران دقیق (بالا و پایین) متوسط یا رشد واقعی
o(g(n)) اُو کوچک رشد کندتر از g(n) توابع کم‌اهمیت‌تر
ω(g(n)) امگا بزرگ رشد سریع‌تر از g(n) توابع با رشد بسیار بیشتر

مثال ساده

فرض کنید زمان اجرای یک الگوریتم چنین باشد:

f(n) = 3n² + 2n + 1

ترتیب رشد توابع رایج

برای درک بهتر، باید بدانیم کدام توابع سریع‌تر رشد می‌کنند:

1 < log n < n < n log n < n² < n³ < 2ⁿ < n! < nⁿ


🔎 نتیجه: الگوریتمی با پیچیدگی O(n) بسیار کارآمدتر از الگوریتمی با پیچیدگی O(n²) است، چون سرعت رشد آن کندتر است.


کاربردهای عملی تحلیل مجانبی


نکته مهم

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