Jump to content
Sign in to follow this  
brhue

Comparação de funções recursivas

Recommended Posts

Pessoal

Pouco entendo de analise de algoritmos, mas recentemente foi me informado que essa primeira função recursiva seria melhor em relacao a segunda. Mas, para provar isso, o autor utilizou o debug na IDE Eclipse, mostrando as chamadas sendo empilhadas na stack. No entanto, ao desempilhar, visualmente a primeira desempilha mais rapido, ao contrario da segunda. Com isso, o autor justificou que gastaria menos ciclos do processador para desempilhar, enquanto a segunda funçao gastaria mais.

void foo1(int n)
{
    if (n >= 0) {
        printf("%d\n", n);
        foo1(n-1);
    }
}

void foo2(int n)
{
    if (n >= 0) {
        foo2(n-1);
        printf("%d\n", n);
    }
}

Quero saber o que voces acham disso, caso ele esteja certo, teria alguma fonte disso ou alguma outra prova empirica ?

obs: Nao estamos levando em consideracao a ordem dos resultados, nem o 'big O', pois acho que os dois sao O(n)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Similar Content

    • By ale_plie
      Alguém conhece algum algoritimo que calcule em série temporal com picos, tempo de subida e descida, duração e amplitude dos picos não negativos?
       
      calcular tempo de subida e descida em picos em series temporais.
    • By GilvanBM46
      Rapaziada estou meio adoentado é preciso entregar uma tarefa simples amanha a noite, Preciso fazer um algorítimo em visualg que calcule o tempo gasto de saída de casa é chegada ao trabalho é mostre as horas gastas os minutos gastos é os segundos gastos.
       
      Consegui fazer ate a metade mais não estou conseguindo processar o resto.
      Quem poder da um tombo te agradeço muito. 
      Fiz uma parte 
       
      Var
      he,hs,me,ms,hora:inteiro
       
      Inicio
      escreva ("Digite a hora de entrada: ")
      leia (he)
      escreva ("Digite os minutos de entrada: ")
      leia (me)
      escreva("Digite a hora de saida: ")
      leia (hs)
      escreva ("Digite os minutos de saida: ")
      leia(ms)
      hora:= hs-he
      escreva("Passou", hora , ":horas")
      Fimalgoritmo
    • By Motta
      Facebook anuncia criação da própria 'unidade de tempo'
      Time is on my side, yes it is.
      Time is on my side, yes it is.
    • By Rodrigokyo
      ola estou migrando para o Wordpress e estou me deparando com alguns problemas eu uso uma hospedagem pagando anualmente e instalei o wp nela já tem uns dois dias , instalei um template e comecei a configurar,  instalei alguns Plugins incluindo elementor , quando fui acessar  hoje o painel do servidor, aparece  essa mensagem.
       "Seu site gerou 17 erros de excesso de processamento e memória nas últimas 24 horas. Visitas importantes em seu site estão sendo perdidas."
      É certo que esses erros de excesso de memoria foi por conta da instalação do wp, gostaria de saber como posso resolver isso e porque isso acontece? 
       
      só um detalhe,  tenho outro servidor de um cliente e nele tem um wp instalado e não ocorre esse problema (na mesma empresa de hospedagem ) sera q foi algum plugin q instalei q causou isso ou o wp não estava atualizado alguém sabe como posso melhorar isso obrigado
    • By DaltonDev
      Eu tenho uma tabela na minha base dados de nome tbl_atualizacaoFunc que armazena informacoes sobre a atualizacao de salario do funcionario essas verificacaoes sao feitas mensalmente ou seja um cada mes fazemos verificamos se houve ou nao uma atualizacao. Ex:
      codigo
      Nome
      salario
      Data_mes
      1234
      Antonio Jonas
      10000
      20171001
      4321
      Selma Joao
      10000
      20171001
      1234
      Antonio Jonas
      11000
      20171101
      4321
      Selma Joao
      10000
      20171101
      No exemplo acima vemos que no mes seguinte o funcionario 1234 na Data_mes de 20171101  teve um acrescimo relativamente o mes anterior sendo assim enviamos essas informacoes para uma outra tabela tbl_historicoActualizacao
      codigo
      Nome
      salario
      data
      1234
      Antonio Jonas
      11000
      20171101
      A ideia e criar uma QUERY que vai fazer essa verificacao ou seja em todo o MES devera ser feita uma vericacao de aumento de salario relativamente o mes anterior, caso tenha havido um aumento entao enviamos essa informacao para a tabela tbl_historicoActualizacao caso nao faremos nada.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.