美文网首页
Go-汉诺塔递归算法

Go-汉诺塔递归算法

作者: KN郑某某 | 来源:发表于2019-09-28 21:44 被阅读0次

汉诺塔递归算法

  • 算法实现
// 从 a -> b 经过 c 中转
func Hanoi(size int, a, b, c byte) {
    if size == 1 {
        fmt.Printf("%c -> %c\n", a, b)
    } else {
        Hanoi(size-1, a, c, b)
        fmt.Printf("%c -> %c\n", a, b)
        Hanoi(size-1, c, b, a)
    }
}
  • 测试代码
func main() {
    function.Hanoi(3, 'A', 'B', 'C')
}
  • 结果

A -> B
A -> C
B -> C
A -> B
C -> A
C -> B
A -> B

  • 时间复杂度

O(2^n)

相关文章

网友评论

      本文标题:Go-汉诺塔递归算法

      本文链接:https://www.haomeiwen.com/subject/ybyoectx.html