Best, worst, and average case
The running time of an algorithm often depends on which input of a given size it receives, not only on the size. The best case is the cheapest input of size n, the worst case is the most expensive, and the average case is the expected cost over a stated distribution of inputs. These describe the inputs; Big O, Ω, and Θ are notation that can describe any of them.
Python
def comparisons(items, target):
count = 0
for item in items:
count += 1
if item == target:
break
return count
items = [10, 20, 30, 40, 50]
best = comparisons(items, 10)
worst = comparisons(items, 50)
miss = comparisons(items, 99)
average = sum(comparisons(items, value) for value in items) / len(items)
print(best, worst, miss)
print(average)
assert average == (len(items) + 1) / 2