Идея 1:
function sort( int[] arr ) {
int[] sorted = quicksort( arr ); // compare and reorder data
while(true); // where'd this come from???
return sorted; // return answer
}
Идея 2
Как вы определяете O(infinity)
? Формальное определение Big-O просто утверждает, что f(x)=O(g(x))
подразумевает, что M*g(x)
является верхней границей f(x)
при достаточно большом x
и некоторой константе M
.
Обычно, когда вы говорите о «бесконечности», вы говорите о некоем неограниченном пределе. Поэтому в данном случае единственное разумное определение гласит, что O(infinity)
- это O(function that's larger than every function)
. Очевидно, что функция, которая больше, чем каждая функция, является верхней границей. Таким образом, технически все "O(infinity)
"
Идея 3
Предполагая, что вы имеете в виду тэта-нотацию (жесткую границу) ...
Если вы налагаете дополнительное ограничение на то, что алгоритм является умным (возвращается, когда он находит отсортированную перестановку), и каждая перестановка списка должна посещаться за конечное время, тогда ответ «нет». Есть только N!
перестановок списка. Верхняя граница для такого алгоритма сортировки является конечной по конечным числам, которая является конечной.