Algoritmos de recursão e retrocesso

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
Insira a descrição da imagem aqui
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
    Insira a descrição da imagem aqui
  • 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

Acho que você gosta

Origin blog.csdn.net/wqs12345612/article/details/114005672
Recomendado
Clasificación