js如何实现全排列

来源:互联网 发布:linux安装jdk1.7.0 79 编辑:程序博客网 时间:2024/06/10 02:09
//进行全排列
                    function swap(arr, i, j) {
                        if(i != j) {
                            var temp = arr[i];
                            arr[i] = arr[j];
                            arr[j] = temp;
                        }
                    }
                    var count = 0;

                    function show(arr) {
                        console.log(arr);
                    }

                    function perm(arr) {
                        (function fn(n) { //为第n个位置选择元素  
                            for(var i = n; i < arr.length; i++) {
                                swap(arr, i, n);
                                if(n + 1 < arr.length - 1) //判断数组中剩余的待全排列的元素是否大于1个  
                                    fn(n + 1); //从第n+1个下标进行全排列  
                                else
                                    show(arr); //显示一组结果  
                                swap(arr, i, n);
                            }
                        })(0);
                    }
                    perm(myarr);
原创粉丝点击