REcursividade

4 respostas
E

Existe alguma vantagem em utilizar recursividade? (é, claro, além da elegância do código, hehe)…

Existem casos em que a abordagem recursiva é mais indicada que a iterativa? Exemplos…

Estava desenvolvendo um método recursivo que realizava caminhamento e marcação de pixels…Estourava a pilha, hehehe…Ai fiz o mesmo método usando uma abordagem iterativa (com pilha) e foi beleza…Isso me levou a pensar na questão…

4 Respostas

MiltonBastos

Acho que depende do caso…
Uso recursividade quando a própria é a solução “natural” para o problema.
Por exemplo: cálculo de fatorial.

Vc disse que deu estouro de pilha… acredito então que, de duas uma, ou o seu
caso não dava pra ser resolvido com recursividade, ou então vc fez o algoritmo
incorretamente, causando o erro.

victorwss

Caminhamento e marcação de pixels provavelmente indica uma profundidade absurdamente grande.

De certa forma, você pode pensar assim:

Eu posso manter o controle usando algum tipo de estado simples (variável, matriz, árvore, grafo ou algum objeto). Se sim, então iterativo provavelmente será melhor. Se não, recursivo provavelmente será melhor.

E

Sim…Claro…Para o meu problema a recursividade é matematicamente inviável…Fiz ecursivo por primeiro impulso mesmo. O algoritmo não está incorreto, pois funciona para imagens de dimensões reduzidas…

Certo, mas o que fico pensando é o seguinte: Para que carregar o segmento de pilha do processo se você pode manter uma pilha no segmento de dados do processo? Não é preferível deixar o segmento de pilha o mais livre possível?

Claro…Estou falando de problemas do nível do meu…

Fatorial com certeza antes de estourar a pilha, estoura o limite do inteiro…

victorwss

eclipso:
Sim…Claro…Para o meu problema a recursividade é matematicamente inviável…Fiz ecursivo por primeiro impulso mesmo. O algoritmo não está incorreto, pois funciona para imagens de dimensões reduzidas…

Certo, mas o que fico pensando é o seguinte: Para que carregar o segmento de pilha do processo se você pode manter uma pilha no segmento de dados do processo? Não é preferível deixar o segmento de pilha o mais livre possível?

Claro…Estou falando de problemas do nível do meu…

Fatorial com certeza antes de estourar a pilha, estoura o limite do inteiro…

No geral sim. Recursão só é útil de verdade em alguns poucos casos, onde realmente o importante é recursividade de código e não de dados. Isso é comum no código de compiladores, analisadores sintáticos, de funções que recebem funções e alguns problemas bem complexos de grafos. Nos outros 98% dos casos, a iteração costuma ser muito melhor.

Criado 26 de julho de 2008
Ultima resposta 26 de jul. de 2008
Respostas 4
Participantes 3