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 相关文章推荐
Ucren Virtual Desktop V2.0
Nov 07 Javascript
js资料prototype 属性
Mar 13 Javascript
JS OOP包机制,类创建的方法定义
Nov 02 Javascript
JavaScript toFixed() 方法
Apr 15 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
Nov 25 Javascript
js实现的仿新浪微博完美的时间组件升级版
Dec 20 Javascript
js查看一个函数的执行时间实例代码
Sep 12 Javascript
浅谈Sticky组件的改进实现
Mar 22 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
Jan 04 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 Javascript
Angularjs2不同组件间的通信实例代码
May 06 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
Dec 10 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新手上路(九)
2006/10/09 PHP
一个PHP操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
2010/06/21 PHP
php学习之变量的使用
2011/05/29 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
ThinkPHP文件缓存类代码分享
2015/04/22 PHP
PHP count()函数讲解
2019/02/03 PHP
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
科研先进个人典型材料
2014/01/31 职场文书
代理班主任的自我评价
2014/02/04 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
环保倡议书范文
2014/05/12 职场文书
纪检干部先进事迹材料
2014/08/23 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
建筑工程材料员岗位职责
2015/04/11 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
保护动物的宣传语
2015/07/13 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js