分治算法的核心是把一个大的问题分解成若干个小问题,互相独立,与原问题形式相同的子问题,若小问题规模较小则直接解决,否则递归解决各个小问题,然后将各个子问题的解合并为原问题的解
像快速排序,归并排序等问题都用到了分治算法思想,其中比较著名的问题是解决汉诺塔
public class Hanoitower { public static void main(String[] args) { hanoiTower(3,‘A‘,‘B‘,‘C‘); } public static void hanoiTower(int num, char a, char b, char c) { if (num == 1) { System.out.println(a + "->" + c); } else { hanoiTower(num - 1, a, c, b); System.out.println(a + "->" + c); hanoiTower(num - 1, b, a, c); } } }
原文:https://www.cnblogs.com/bingbug/p/12355863.html