average-case runtime