Правильно ли я сказал, что есть сценарий наихудшего, наилучшего и среднего случая ios?
Случай - это просто некоторое подмножество всех возможных входов, возможно, подмножество, которое имеет один ввод всех возможных размеров ввода. Так, например, для алгоритма сортировки может быть некоторое подмножество набора всех возможных входных массивов, а может быть только те подмножества, которые имеют ровно один элемент каждого входного размера. Используя это определение, наихудшим случаем будет подмножество входов, так что они заставляют алгоритм выполнять большинство инструкций для данного размера ввода; лучшим вариантом будет набор входов, которые требуют наименьшего количества шагов при каждом размере ввода; и средний случай будет похож на ожидаемое значение запущенных типов по всем возможным экземплярам для каждого размера (по простому определению, приведенному выше, средний «случай» на самом деле вовсе не является истинным случаем, скорее, как гипотетический случай).
С каждым случаем мы можем связать асимптотику c с ограничением - верхнюю, нижнюю или обе. Обычно интерес представляют верхние границы в худшем случае, а иногда и нижние в лучшем случае. Но нельзя говорить о том, что верхняя граница в лучшем случае или нижняя граница в худшем случае.
Отправленный вами код всегда выполняет объем работы, пропорциональный квадрату size
' с ценностью. В этом смысле это O(size^2)
. Это также Омега и Тета size^2
. Если алгоритм получает входные данные, размер которых в битах пропорционален размеру, то это истинная сложность. Если алгоритм получает значение size
в качестве входных данных (представленное с использованием log(size)
битов), то сложность фактически экспоненциальная - сложность в терминах size
можно назвать псевдополиномиальной .