跳转到内容
KN郑某某

Go-汉诺塔递归算法

使用 Go 语言实现汉诺塔递归算法。

算法基础 1 分钟阅读

  • 算法实现
// 从 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)

评论