JS实现的数组全排列输出算法


Posted in Javascript onMarch 19, 2015

本文实例讲述了JS实现的数组全排列输出算法。分享给大家供大家参考。具体分析如下:

这段js代码对数组进行全排列输出,改进了一些老的代码
从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。

function permute(input) {
  var permArr = [],
  usedChars = [];
  function main(input){
    var i, ch;
    for (i = 0; i < input.length; i++) {
      ch = input.splice(i, 1)[0];
      usedChars.push(ch);
      if (input.length == 0) {
        permArr.push(usedChars.slice());
      }
      main(input);
      input.splice(i, 0, ch);
      usedChars.pop();
    }
    return permArr
  }
  return main(input);
};
console.log(permute([5, 3, 7, 1]));

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JS如何将UTC格式时间转本地格式
Sep 04 Javascript
js设置function参数默认值(适合没有传参情况)
Feb 24 Javascript
使用iojs的jsdom库实现同步系统时间
Apr 20 Javascript
jquery带翻页动画的电子杂志代码分享
Aug 21 Javascript
JavaScript实现的经典文件树菜单效果
Sep 08 Javascript
jQuery结合CSS制作动态的下拉菜单
Oct 27 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
Jan 15 Javascript
老生常谈jquery id选择器和class选择器的区别
Feb 12 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
Mar 13 Javascript
深入理解Node.js中通用基础设计模式
Sep 19 Javascript
React数据传递之组件内部通信的方法
Dec 31 Javascript
微信小程序:报错(in promise) MiniProgramError
Oct 30 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 #Javascript
JavaScript实现在标题栏上显示当前日期的方法
Mar 19 #Javascript
JavaScript显示当前文档最后修改日期的方法
Mar 19 #Javascript
JavaScript将一个数组插入到另一个数组的方法
Mar 19 #Javascript
JS中prototype的用法实例分析
Mar 19 #Javascript
JS获取Table中td值的方法
Mar 19 #Javascript
JavaScript使用yield模拟多线程的方法
Mar 19 #Javascript
You might like
转PHP手册及PHP编程标准
2006/12/17 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
kohana框架上传文件验证规则写法示例
2014/07/14 PHP
php中strtotime函数用法详解
2014/11/15 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
PHP6新特性分析
2016/03/03 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
javascript 二进制运算技巧解析
2012/11/27 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
对javascript继承的理解
2016/10/11 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
分析python动态规划的递归、非递归实现
2018/03/04 Python
基于Python log 的正确打开方式
2018/04/28 Python
详解Django中间件执行顺序
2018/07/16 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
Python内置函数property()如何使用
2020/09/01 Python
python sleep和wait对比总结
2021/02/03 Python
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
会走路的树教学反思
2014/02/20 职场文书
自荐信如何制作?
2014/02/21 职场文书
大学活动总结范文
2014/04/29 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
大一新生期末自我评价
2014/09/12 职场文书
千手观音观后感
2015/06/03 职场文书