Big O رفتار الگوریتم را با رشد ورودی (n) توصیف می‌کند، نه زمان دقیق به ثانیه.

  • O(1): زمان ثابت؛ خواندن یک عنصر از آرایه با اندیس.
  • O(log n): جست‌وجوی دودویی در آرایهٔ مرتب.
  • O(n): یک حلقهٔ ساده روی همهٔ عناصر.
  • O(n log n): مرتب‌سازی‌های کارآمد مثل merge sort.
  • O(n²): دو حلقهٔ تو در تو؛ با افزایش ورودی به‌سرعت کند می‌شود.
// O(n)
for (const x of items) total += x;

// O(n^2)
for (const a of items)
  for (const b of items) compare(a, b);

هنگام انتخاب الگوریتم، هم رشد زمان و هم حافظه را در نظر بگیرید؛ اما برای ورودی‌های کوچک، سادگی کد مهم‌تر از بهینه‌سازی است.