Big O Notation روشی برای توصیف کران بالای رشد هزینه یک الگوریتم با افزایش اندازه ورودی است. معمولاً هزینه زمان یا حافظه را نسبت به n بررسی میکنیم.
از تعریف تا کاربرد
پیمایش همه عناصر آرایه معمولاً O(n) و دسترسی مستقیم به عنصر آن در بسیاری از پیادهسازیها O(1) است. جستوجوی دودویی روی داده مرتب O(log n) دارد.
Big O زمان واقعی اجرا را بر حسب ثانیه نمیگوید. ضرایب ثابت، حافظه و رفتار سختافزار نیز برای تصمیم مهندسی مهماند.
مقایسه مرتبه زمانی الگوریتمها
# O(n): scan all items
found = any(item.id == target for item in items)
# Average O(1) hash lookup after building index
by_id = {item.id: item for item in items}
found = target in by_id
Big O نرخ رشد هزینه با بزرگ شدن ورودی را توصیف میکند و زمان واقعی میلیثانیه نیست. ساخت دیکشنری هم هزینه حافظه و زمان اولیه دارد.