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实现倒计时按钮的实现代码
Mar 23 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
Apr 02 Javascript
JS实现拖动示例代码
Nov 01 Javascript
Js获取下拉框选定项的值和文本的实现代码
Feb 26 Javascript
浅谈Javascript中substr和substring的区别
Sep 30 Javascript
Jquery 全选反选实例代码
Nov 19 Javascript
JavaScript的模块化开发框架Sea.js上手指南
May 12 Javascript
8 行 Node.js 代码实现代理服务器
Dec 05 Javascript
underscore之Collections_动力节点Java学院整理
Jul 10 Javascript
jQuery动态移除与增加onclick属性的方法详解
Jun 07 jQuery
JavaScript实现星级评价效果
May 17 Javascript
微信小程序 select 下拉框组件功能
Sep 09 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 MemCached高级缓存配置图文教程
2010/08/05 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
最新版本PHP 7 vs HHVM 多角度比较
2016/02/14 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
PHP与Perl之间知识点区别整理
2019/03/19 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
2017/10/31 Javascript
vue二级路由设置方法
2018/02/09 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
微信小程序中为什么使用var that=this
2019/08/27 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
python 切片和range()用法说明
2013/03/24 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
Python算法应用实战之队列详解
2017/02/04 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
PyQt5 对图片进行缩放的实例
2019/06/18 Python
python实现广度优先搜索过程解析
2019/10/19 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
农业项目合作意向书
2015/05/08 职场文书
采购部年度工作总结
2015/08/13 职场文书