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 相关文章推荐
JavaScript 空位补零实现代码
Feb 26 Javascript
在JS数组特定索引处指定位置插入元素的技巧
Aug 24 Javascript
解决js下referer兼容各大浏览器的方法
Nov 03 Javascript
JS获取下拉框显示值和判断单选按钮的方法
Jul 09 Javascript
学习使用AngularJS文件上传控件
Feb 16 Javascript
jQuery插件ajaxfileupload.js实现上传文件
Oct 23 Javascript
AngularJS开发教程之控制器之间的通信方法分析
Dec 25 Javascript
jquery.cookie.js的介绍与使用方法
Feb 09 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
May 26 Javascript
JavaScript 中的 this 工作原理
Jun 20 Javascript
深入理解JavaScript 中的执行上下文和执行栈
Oct 23 Javascript
vue实现点击按钮下载文件功能
Oct 11 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(3) php 函数
2010/02/15 PHP
PHP查询快递信息的方法
2015/03/07 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
PHP使用观察者模式处理异常信息的方法详解
2019/09/24 PHP
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
在Python中处理时间之clock()方法的使用
2015/05/22 Python
pandas string转dataframe的方法
2018/04/11 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
pyqt5 使用cv2 显示图片,摄像头的实例
2019/06/27 Python
python3获取url文件大小示例代码
2019/09/18 Python
python处理excel绘制雷达图
2019/10/18 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
Keras 加载已经训练好的模型进行预测操作
2020/06/17 Python
python pip如何手动安装二进制包
2020/09/30 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
Nike香港官网:Nike HK
2019/03/23 全球购物
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
投标人廉洁自律承诺书
2014/05/26 职场文书
论文致谢词范文
2015/05/14 职场文书
企业法人任命书
2015/09/21 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书