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高亮效果的二种实现方法
Sep 14 Javascript
JavaScript 选中文字并响应获取的实现代码
Aug 28 Javascript
鼠标拖动实现DIV排序示例代码
Oct 14 Javascript
node.js读取文件到字符串的方法
Jun 29 Javascript
jQuery EasyUI Dialog拖不下来如何解决
Sep 28 Javascript
jquery表单验证需要做些什么
Nov 17 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
Oct 15 Javascript
jQuery按需加载轮播图(web前端性能优化)
Feb 17 Javascript
浅析Vue中method与computed的区别
Mar 06 Javascript
浅谈Express.js解析Post数据类型的正确姿势
May 30 Javascript
iview实现动态表单和自定义验证时间段重叠
Jan 10 Javascript
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
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语法(4)
2006/10/09 PHP
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
PHP session有效期session.gc_maxlifetime
2011/04/20 PHP
php基于GD库画五星红旗的方法
2015/02/24 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
PHP7 其他语言层面的修改
2021/03/09 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
2014/08/18 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
vue之将echart封装为组件
2018/06/02 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
python网络编程学习笔记(二):socket建立网络客户端
2014/06/09 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
Python的Flask开发框架简单上手笔记
2015/11/16 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
解决python flask中config配置管理的问题
2019/07/26 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
护理专业本科生自荐信
2013/10/01 职场文书
写自荐信有哪些不宜?
2013/10/17 职场文书
美术专业个人自我评价
2014/01/18 职场文书
给护士表扬信
2014/01/19 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
公务员年度考核评语
2014/12/31 职场文书
美容院管理规章制度
2015/08/05 职场文书
SQL SERVER触发器详解
2022/02/24 SQL Server