Class AlgoUtil

java.lang.Object
cn.sinozg.applet.common.utils.AlgoUtil

public class AlgoUtil extends Object
实现一些基本算法
  • Field Details

  • Constructor Details

    • AlgoUtil

      private AlgoUtil()
  • Method Details

    • power

      public static List<List<Integer>> power(int m, int n)
      全排列公式

      就是从任意m里面取出n个数,每个数都是不一样的,可以重复的

      实现的算法如下 mn

      Parameters:
      m - 总数
      n - 要取出的数
    • c

      public static List<List<Integer>> c(int m, int n)
      组合公式逻辑实现

      实现的算法如下 Cmn

      Parameters:
      m - 总数
      n - 要取出的数
    • c

      public static <T> List<List<T>> c(List<T> resources, int n)
      组合公式逻辑实现 m为resources的size

      实现的算法如下 Cmn

      Type Parameters:
      T - 类型
      Parameters:
      resources - 要排列的数据
      n - 要取出的数量
      Returns:
      所有的情况
    • recursion

      private static <T> void recursion(List<List<T>> result, List<T> resources, int curNum, int indexNum)
      迭代实现组合排列的逻辑
      Type Parameters:
      T - 数据类型
      Parameters:
      result - 返回的结果集
      resources - 要排列的数据集
      curNum - 当前值
      indexNum - 迭代的下标
    • numList

      private static List<Integer> numList(int m)