Day590.分治算法 -数据结构和算法Java

Posted 阿昌喜欢吃黄桃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day590.分治算法 -数据结构和算法Java相关的知识,希望对你有一定的参考价值。

分治算法

一、介绍


  • 思路分析

二、代码实现

package com.achang.algorithm;

/**
 * 分治算法
 */
public class DivideAndConquer 
    public static void main(String[] args) 
        hanoiTower(3,'a','b','c');
    

    /**
     * 汉诺塔移动方法
     * 使用分治算法
     * @param num 盘的数量
     * @param a 塔A
     * @param b 塔B
     * @param c 塔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最下面的盘
            //先吧最上面的所有盘盘 A->B,移动过程会使用到c
            hanoiTower(num - 1,a,c,b);
            System.out.println("第"+ num + "个盘从 " + a + "->"+c);
            //把B塔的所有盘移动到C塔
            hanoiTower(num - 1,b,a,c);
        
    




以上是关于Day590.分治算法 -数据结构和算法Java的主要内容,如果未能解决你的问题,请参考以下文章

暑假集训模拟DAY5杂项-分治&二分&倍增&快速幂

2017雅礼集训 Day1

点分治

Codeforces Round #590

590. N 叉树的后序遍历

Codeforces Round #590 (Div. 3)