编程语言
首页 > 编程语言> > 常见算法——分治算法

常见算法——分治算法

作者:互联网

常见算法——分治算法

基本介绍

基本思想

应用案例(汉诺塔问题)

在这里插入图片描述借助中间柱B将A柱上的盘移动到C柱。

代码实现

package com.divide_and_conquer;

public class Hanoitower {

	public static void main(String[] args) {
		hanoiTower(5, 'A', 'B', 'C');

	}
	// 汉诺塔的移动方法
	// 分治算法
	public static void hanoiTower(int num, char a, char b, char c) {
		// 只有一个盘
		if (num == 1) {
			System.out.println("第1个盘从" + a + "-->" + c);
		} else {
			// 如果我们有n>=2情况,我们总是可以看做是两个盘1.最下边的盘2.上面的盘
			// 1.先把最上面的盘A->B 移动过程会使用到c
			hanoiTower(num - 1, a, c, b);
			// 2.把最下边的盘A->C
			System.out.println("第" + num + "个盘从" + a + "-->" + c);
			// 3.把B塔的所有盘从B->C 移动过程会使用到a
			hanoiTower(num - 1, b, a, c);
		}
	}
}
lu_long 发布了39 篇原创文章 · 获赞 31 · 访问量 6067 私信 关注

标签:常见,分治,问题,算法,num,hanoiTower,public
来源: https://blog.csdn.net/lu_long/article/details/104114179