Recursão e retrocesso
A natureza básica da recursão: a própria chamada de função
mantém o problema de grande escala menor e, em seguida, o empurra de volta para o processo de
retrocesso: usando a natureza da recursão
Começando do ponto de partida do problema, continue tentando
voltar um passo ou mesmo várias etapas para fazer uma escolha até que chegue. Fim do processo
Recursão
O algoritmo recursivo é um algoritmo que chama sua própria função.
Recursos: pode tornar um problema aparentemente complexo conciso e fácil de entender.
Caso clássico: Torre de
Hanoi. Implementação do código Python da Torre de Hanoi:
def hano(A: str, B: str, C: str, n: int) -> None:
if n > 0:
hano(A, C, B, n - 1)
print(A + "->" + C)
hano(B, A, C, n - 1)
if __name__ == '__main__':
hano('A', 'B', 'C', 5)
Ideia de algoritmo
- Saiba como tornar um problema menor
- Reutilize para obter resultados de problemas de pequena escala
- Combinando o valor atual e a situação oscilante, o resultado final é um
entendimento popular - Trate a função recursiva a ser implementada como já implementada
- Resolva alguns subproblemas diretamente
- Pensando: Como obter a resposta de acordo com a solução do subproblema e a situação atual
Recursão:
Programação dinâmica de cima para baixo : Resumo da estrutura de escrita recursiva de baixo para cima
- Determine se a situação atual é ilegal e retorne imediatamente se for ilegal, o que também é chamado de Verificação de Sanidade
- Determine se as condições para encerrar a recursão são atendidas
- Reduza o tamanho do problema e ligue recursivamente
- Use as respostas em questões de pequena escala e combine os dados atuais para obter a resposta final.
2 algoritmos recursivos para resolver o
método da fórmula do método iterativo de análise de complexidade de tempo
Retrocedendo
O algoritmo de
retrocesso é uma espécie de algoritmo heurístico, e a maior diferença da busca de força bruta: no algoritmo de retrocesso, é testar passo a passo, avaliar a situação de cada etapa da detecção e decidir se continua, evitando desvios
. A essência do algoritmo de retrocesso
- Quando algo ilegal ocorre, você pode voltar à cena anterior e voltar uma ou mais etapas
- Em seguida, tente outros caminhos e métodos.Se
quiser usar o algoritmo de retrocesso, você deve garantir que haja vários algoritmos de retrocesso possíveis para resolver o problema todas as vezes.
- Julgue primeiro se a situação atual é ilegal e retorne imediatamente se for anormal
- Veja se a situação atual atendeu às condições? Se sim, salve o resultado atual e retorne
- Na situação atual, atravesse todas as situações possíveis e recurse
- Após a conclusão da recursão, volte imediatamente. A maneira de voltar é cancelar a tentativa feita na etapa anterior