Как определяется вычислительная сложность, если алгоритм:
- ...yields many results? As a total (then an algorithm producing a set of
k
cannot be faster than O(k) ) or per element (then the estimate must be multiplied to compare it with non-set-producing algorithms)?- What about storage complexity - does an estimate reflect if the entire set needs to be present in memory at once or each consecutive element can be produced and discarded?
- ...имеет несколько параметров? Отдельный показатель для каждого параметра или что-то комбинированное?
Примером, подходящим для обоих случаев, является выбор k
элементов из N
. Например. есть ли разница в оценке в зависимости от того, требуется ли ~k
или ~N
шагов?
Я хотел бы увидеть веские доказательства: формальное определение термина в этих случаях и/или то, как эта двусмысленность устраняется в документах по компьютерным наукам, а не просто случайные мысли и/или личный опыт. Цель состоит в том, чтобы выработать полное, современное решение, чтобы раз и навсегда устранить эти двусмысленности в моих (и чужих) текстах.
Меня озадачили следующие вопросы: Уникальные (неповторяющиеся) случайные числа в O(1)?, Как эффективно сгенерировать список из K неповторяющихся целых чисел от 0 до верхней границы N, Алгоритм выбора одной случайной комбинации значений?, Эффективный выбор набора случайных элементов из связанного списка.