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下的Live方法和$.browser方法使用代码
Jun 02 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
Jan 08 Javascript
jQuery select表单提交省市区城市三级联动核心代码
Jun 09 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
Dec 02 Javascript
JS调用打印机功能简单示例
Nov 28 Javascript
underscore之function_动力节点Java学院整理
Jul 11 Javascript
Vue列表页渲染优化详解
Jul 24 Javascript
使用vue-router为每个路由配置各自的title
Jul 30 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
Aug 09 jQuery
利用JS动态生成隔行换色HTML表格的两种方法
Oct 09 Javascript
vscode+gulp轻松开发小程序的完整步骤
Oct 18 Javascript
JavaScript 与 TypeScript之间的联系
Nov 27 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
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
解析ajax事件的调用顺序
2013/06/17 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
vue与django集成打包的实现方法
2019/11/11 Javascript
JavaScript实现拖拽功能
2020/02/11 Javascript
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
python matlab库简单用法讲解
2020/12/31 Python
Python中Qslider控件实操详解
2021/02/20 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
6PM官网:折扣鞋、服装及配饰
2018/08/03 全球购物
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
保卫钓鱼岛口号
2014/06/20 职场文书
县委务虚会发言材料
2014/10/20 职场文书
质量整改报告范文
2014/11/08 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
一文读懂navicat for mysql基础知识
2021/05/31 MySQL
Java实现简易的分词器功能
2021/06/15 Java/Android
k8s部署redis cluster集群的实现
2021/06/24 Redis