Теория против практики здесь. Что касается сложности времени, и у меня есть концептуальный вопрос, который мы не поняли go глубже в классе.
Вот оно:
Есть варвар c B ROOT алгоритм силы, O (n ^ 3) ... и мы понизили его o O (n), и это было сочтено достаточно хорошим. Если мы углубимся глубже, это фактически O (n) + O (n), две отдельные итерации ввода. Я придумал другой способ, который на самом деле был O (n / 2). Но эти два алгоритма считаются одинаковыми, поскольку оба являются O (n), и когда n достигает бесконечности, это не делает различий, поэтому вообще не нужно, когда мы достигаем O (n).
Мой вопрос :
В действительности, на практике у нас всегда есть конечное число входных данных (по общему признанию, иногда в триллионах). Таким образом, следуя логике временной сложности c, O (n / 2) в четыре раза быстрее, чем O (2n). Так что, если мы можем сделать это быстрее, почему бы и нет?