فصل چهارم: پیچیدگی زمانی ساده

آشنایی ساده با نماد O بزرگ

معرفی مقدماتی Big O

نماد O بزرگ (Big O) روشی استاندارد برای توصیف رشد تعداد عملیات یک الگوریتم نسبت به اندازه‌ی ورودی n است، در بدترین حالت ممکن. در این دوره فقط با چند حالت پرکاربرد و ساده آشنا می‌شویم، بدون ورود به اثبات ریاضی دقیق.

نمادناممثال
O(1)ثابتخواندن اولین عضو یک لیست
O(n)خطیجستجوی خطی در یک لیست
O(n²)درجه دوممرتب‌سازی حبابی
O(log n)لگاریتمیجستجوی دودویی

در الگوریتم O(1)، تعداد عملیات مستقل از اندازه‌ی ورودی و همیشه ثابت است. در O(n)، تعداد عملیات با افزایش اندازه‌ی ورودی به همان نسبت افزایش می‌یابد. در O(n²)، مانند مرتب‌سازی حبابی که یک حلقه‌ی تودرتوی دیگر دارد، با دو برابر شدن اندازه‌ی ورودی، تعداد عملیات تقریباً چهار برابر می‌شود.

یک قاعده‌ی ساده برای تخمین پیچیدگی یک قطعه کد این است: هر حلقه‌ی ساده که یک‌بار روی n عنصر اجرا می‌شود، معمولاً O(n) است؛ و هر حلقه‌ی تودرتو که هرکدام تا n تکرار می‌کنند، معمولاً O(n²) است. با این قاعده‌ی ساده، می‌توانید سریعاً پیچیدگی تقریبی بسیاری از الگوریتم‌های ساده را تشخیص دهید.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.