• Почему n^3 работает быстрей чем 2^n?

    LaRN
    @LaRN
    Senior Developer
    Потому что если подставить в формулу N >= 10, то значение 2^N больше N^3.
    Ответ написан
    1 комментарий
  • Почему n^3 работает быстрей чем 2^n?

    @Mercury13
    Программист на «си с крестами» и не только
    Одно из двух.
    А. O(n³) и O(2n) — сложность каких-то алгоритмов.

    Читайте определение символов Ландау, и будет всё понятно.
    n³ = o(2n) при n→∞, что означает:

    lim{n→∞} n³ / 2n = 0.

    Что означает: при безграничном повышении n алгоритм, работающий за n³, будет иметь всё большее и большее преимущество перед конкурентом.

    Б. n³ и 2n — функции, которые нам надо вычислить.

    Сложность первой O(1) (всегда два умножения), сложность второй в общем случае — O(log n) (из-за того, что логарифмы от разных оснований отличаются на константу, а константу символы Ландау не учитывают, основание логарифма не пишут).

    UPD. Что значит «в общем случае»? Оценку могут увеличить различные второстепенные алгоритмы вроде выделения памяти и преобразования в десятичный вид, и уменьшить — то, что 2n можно вычислть сдвигом. Не забудьте, что сложность алгоритмов определяется при n→∞.
    Ответ написан
    Комментировать