美文网首页
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