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 相关文章推荐
jQuery 一个图片切换的插件
Oct 09 Javascript
angularjs基础教程
Dec 25 Javascript
jQuery中:gt选择器用法实例
Dec 29 Javascript
jQuery插件jRumble实现网页元素抖动
Jun 05 Javascript
JavaScript实现获得所有兄弟节点的方法
Jul 23 Javascript
jquery马赛克拼接翻转效果代码分享
Aug 24 Javascript
javascript每日必学之条件分支
Feb 17 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
Aug 05 Javascript
vue指令以及dom操作详解
Mar 04 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
Apr 16 Javascript
Js中将Long转换成日期格式的实现方法
Jun 05 Javascript
微信小程序多列表渲染数据开关互不影响的实现
Jun 05 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中使用sleep造成mysql读取失败的案例和解决方法
2014/08/21 PHP
php实现求相对时间函数
2015/06/15 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
jQuery选择器全集详解
2014/11/24 Javascript
javascript常用方法总结
2015/05/14 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
vue.js的安装方法
2017/05/12 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
Python实现抢购IPhone手机
2018/02/07 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
面向对象编程的优势是什么
2015/12/17 面试题
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
招商专员岗位职责
2014/02/08 职场文书
日语专业毕业生自荐书
2014/06/18 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
好好学习保证书
2015/02/26 职场文书
web前端之css水平居中代码解析
2021/05/20 HTML / CSS
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
Python字典的基础操作
2021/11/01 Python
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers