Как рассчитать временную сложность алгоритма? О лучшем, худшем и среднем случае.

3 Ответы


  • Ты должен знать
    - алгоритм
    - кратчайший путь по алгоритму
    - самый длинный путь по алгоритму
    - как длина пути или количество итераций меняются в зависимости от количества обрабатываемых элементов данных
    - как выглядит "средний" набор данных.

    Временную сложность наилучшего случая можно рассчитать, учитывая, что происходит со временем выполнения или количеством итераций, когда вы увеличиваете набор данных на 1 элемент, на 2 элемента, в 2 раза, в 3 раза. Если время выполнения увеличение линейно зависит от количества элементов данных, мы говорим, что временная сложность равна O (N), то есть порядка N - количества элементов данных. Если время выполнения изменяется как квадрат количества элементов данных, то мы говорим, что временная сложность равна O (N 2 ). Временная сложность может быть другого порядка, экспоненциальной или иметь другое отношение к количеству элементов данных, например, O (N 3/2 ).

    Такая же оценка временной сложности может быть сделана для худшего и среднего случаев.
  • В КАЧЕСТВЕ 1-го алгоритма,
    внутри первого цикла while ----->

    нам нужно выяснить, какие все основные операции занимают постоянное количество времени.
    Здесь
    k ← 0 ------ одна базовая операция
    k <n * n ---- предположим, что n * n = N (в любом случае это будет одно число) одна базовая операция
      y ← y + j - k - ----- другая базовая операция
    k ← k + 1 ------ еще одна базовая операция
    j ← j - 1 ------ последняя базовая операция внутри 1-го цикла while

    Теперь рассмотрим время,

    1+ N + N -1 + N-1 + 1 = 3N

    внутри цикла while, принимает 3N (N - это просто большое число, если мы предполагаем большое значение n)
    Y ← 0
    j ← n
    while j> = 1 do {
      k ← 0
      while k <n * n do {
      y ← y + j - k
      k ← k + 1
      }
    j ← j - 1
    }

    Y ← 0
    j ← n

    теперь возьмем 1-й алгоритм в целом ,

    теперь для n значения 1 общий алгоритм займет 3N раз,
    теперь для n значения 2 общий алгоритм займет 2 * 3N раз и
    так далее ...
    Для значения n
    n * 3N = 3 N2 (три N квадрата), поэтому наконец, мы можем сказать, что результат этого алгоритма равен n квадрату.
  • С Новым годом и мира вам всем! Не могли бы вы объяснить мне, каково время выполнения T (n) трех алгоритмов?

    Алгоритм 1:
    Y ← 0
    j ← n
    while j> = 1 do {
      k ← 0
      while k <n * n do {
      y ← y + j - k
      k ← k + 1
      }
    j ← j - 1
    }
    return y

    Алгоритм 2 :
    ибо я ← 1 п сделать
      для J ← 1 к я
      для к ← J к I + J делать
      с ← + 1
      конец для
      конца для
    конца для

    алгоритма 3:
    ибо я ← 1 м делать
      для j ← от 1 до i2 do
      для k ← от 1 до j do
      b ← b + 1
      конец за
      конец за
    конец для

Напишите свой ответ

Ваш ответ появится после модерации