组合算法简单实现

组合算法

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 1.简单的字符串方式
  • 参考资料和推荐阅读

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

组合算法简单实现_第1张图片

概述

组合算法是一个非常常见的需求。

需求:

设计思路

实现思路分析

1.简单的字符串方式

这里限于时间原因:给出如下实现:

public class demo {

    public static void combination(String[] s) {
        if (s.length == 0) {
            return;
        }
        int len = s.length;
        int n = 1 << len;
        // 从1循环到2^len-1
        for (int i = 1; i < n; i++) {
            StringBuffer sb = new StringBuffer();
            // 查看第一层循环里面的任意一种取值当中的哪一位是1[比如ab,011], 如果是1,对应的字符就存在,打印当前组合。
            String sum = "";
            for (int j = 0; j < len; j++) {
                if ((i & (1 << j)) != 0) { // 对应位上为1,则输出对应的字符
                    String a = s[j];
                    sum = sum + a+",";
                    sb.append(s[j]);
                }
            }
            System.out.println("组合:" + sb + " ,sum:" + sum.substring(0, sum.length() - 1));
        }
    }


    public static void main(String[] args) {
        String[] a={"a","b","c","d"};
        combination(a);
    }
}

结果:
组合算法简单实现_第2张图片
剩下的下次写吧

参考资料和推荐阅读

参考资料
官方文档
开源社区
博客文章
书籍推荐

  1. 暂无

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~

你可能感兴趣的:(算法,java,开发语言)