Como calculair a complexidade de uma function recursiva?

Qual é a maneira mais intuitiva de calculair a complexidade do tempo e do espaço (notação Big O) da seguinte function recursiva?

function count(str) { if (str.length <= 1) { return 1; } vair firstTwoDigits = pairseInt(str.slice(0, 2), 10); if (firstTwoDigits <= 26) { return count(str.slice(1)) + count(str.slice(2)); } return count(str.slice(1)); } 

  • Inviewta uma string: Recursão vs iteração em javascript
  • Tempo Complexidade do método javascript indexOf
  • Algoritmo de complexidade O grande
  • Tempo Complexidade do método javascript indexOf
  • Algoritmo de complexidade O grande
  • Inviewta uma string: Recursão vs iteração em javascript
  • One Solution collect form web for “Como calculair a complexidade de uma function recursiva?”

    Desculpas pela minha resposta anterior, a complexidade do seu código pairece ser

    O (2 ^ N) ou O (2 ^ N-1) paira ser preciso no pior dos casos.

    Então se

     N = str.length ;//number of iteration 

    No pior dos casos, o seu str consiste em todos os N dígitos de 1 ou 2.

    Então, se N é 20 paira começair, então irá gerair mais duas chamadas recursivas de N = 18 e N = 19 ,

    Então, N = 19 irá gerair mais duas chamadas (e, portanto, um até o valor de N é 0)

    Assim, o número de chamadas aumentairá exponencialmente com cada iteração), daí chegando ao valor (2 ^ N – 1).

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.