При более детальном анализе трудоемкости алгоритма оказывается, что не всегда количество элементарных операций, выполняемых алгоритмом на одном входе длины N, совпадает с количеством операций на другом входе такой же длины. Это приводит к необходимости введения специальных обозначений, отражающих поведение функции трудоемкости данного алгоритма на входных данных фиксированной длины.
Пусть DА — множество конкретных проблем данной задачи, заданное в формальной системе. Пусть DҒ, DА — задание конкретной проблемы и |D|=N.
В общем случае существует собственное подмножество множества DА, включающее все конкретные проблемы, имеющие мощность N:
- обозначим это подмножество через DN:DN= {DҒ, DN : |D| = N};
- обозначим мощность множества DN через MDN→ MDN=|DN |.
Тогда содержательно данный алгоритм, решая различные задачи размерности N, будет выполнять в каком-то случае наибольшее количество операций, а в каком-то случае наименьшее количество операций. Введем следующие обозначения:
1. Fα ^(N) - худший случай - наибольшее количество операций, совершаемых алгоритмом А для решения конкретных проблем размерностью N:
Fα ^(N) = max {Fα (D)}
DDN -худший случай на DN.
2. Fα
(N) - лучший случай - наименьшее количество операций, совершаемых алгоритмом А для решения конкретных проблем размерностью N:
Fa
(N) = min {Fa (D)}
DDN - лучший случай на DN
3.
α(N) - средний случай - среднее количество операций, совершаемых алгоритмом А для решения конкретных проблем размерностью N:
a(N)=(1/MDN}·Σ{Fa(D)}
DÎDN - средний случай на DN