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 .ajax 在IE下卡死问题的解决方法
Oct 26 Javascript
Bootstrap登陆注册页面开发教程
Jul 12 Javascript
清除浏览器缓存的几种方法总结(必看)
Dec 09 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
Sep 23 jQuery
vue项目中使用ueditor的实例讲解
Mar 05 Javascript
解决vuecli3.0热更新失效的问题
Sep 19 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
Oct 20 Javascript
使用layui的layer组件做弹出层的例子
Sep 27 Javascript
JS document form表单元素操作完整示例
Jan 13 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
Sep 05 Javascript
基于ant design日期控件使用_仅月份的操作
Oct 27 Javascript
原生Js 实现的简单无缝滚动轮播图的示例代码
May 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/12/14 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
用javascript实现点击链接弹出&quot;图片另存为&quot;而不是直接打开
2007/08/15 Javascript
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
2009/10/11 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
python如何把嵌套列表转变成普通列表
2018/03/20 Python
Python实现按中文排序的方法示例
2018/04/25 Python
浅述python中深浅拷贝原理
2018/09/18 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
python+pyqt5编写md5生成器
2019/03/18 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
python模块如何查看
2020/06/16 Python
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
学习张丽丽心得体会
2014/09/03 职场文书
党员示范岗材料
2014/12/19 职场文书
警示教育片观后感
2015/06/17 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL
详解flex:1什么意思
2022/07/23 HTML / CSS