• 排列组合算法的javascript实现


    一、筛选数组内n个元素的组合情况


    function queue(arr, size) {
        if (size > arr.length) { return; }
        var allResult = [];

        (function (arr, size, result) {
            if (result.length == size) {
                allResult.push(result);
            } else {
                for (var i = 0, len = arr.length; i < len; i++) {
                    var newArr = [].concat(arr),
                        curItem = newArr.splice(i, 1);
                    arguments.callee(newArr, size, [].concat(result, curItem));
                }
            }
        })(arr, size, []);

        return allResult;
    }


    function choose(arr, size) {
        var allResult = [];

        (function (arr, size, result) {
            var arrLen = arr.length;
            if (size > arrLen) {
                return;
            }
            if (size == arrLen) {
                allResult.push([].concat(result, arr))
            } else {
                for (var i = 0; i < arrLen; i++) {
                    var newResult = [].concat(result);
                    newResult.push(arr[i]);

                    if (size == 1) {
                        allResult.push(newResult);
                    } else {
                        var newArr = [].concat(arr);
                        newArr.splice(0, i + 1);
                        arguments.callee(newArr, size - 1, newResult);
                    }
                }
            }
        })(arr, size, []);

        return allResult;
    }

    function showResult(result) {
        console.log('The number of result sets: ' + result.length);
        for (var i = 0, len = result.length; i < len; i++) {
            console.log(result[i]);
        }
    }


    var arr = ['姬光', '王子', '三桂', '科长'];

    showResult(choose(arr, 4));
    showResult(queue(arr, 4));
  • 相关阅读:
    jfinal 导出excle
    SpringBoot添加多数据源mysql和oracle
    Centos6.8搭建Git服务(git版本可选)(转)
    阿里云服务器搭建java环境(jdk+tomcat+oracle11g)
    Oracle 迁移数据库到 mysql
    mysql 迁移数据库到 oracle (sql注意问题)
    nginx学习之——虚拟主机配置
    mongodb 学习之——mongod --help 中文解释
    win 7 MongoDB 下载安装
    nginx学习之——信号控制和配置
  • 原文地址:https://www.cnblogs.com/gavinjay/p/13963378.html
Copyright © 2020-2023  润新知