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 相关文章推荐
textContent在Firefox下与innerText等效的属性
May 12 Javascript
javascript和jquery修改a标签的href属性
Dec 16 Javascript
js库Modernizr的介绍和使用
May 07 Javascript
原生js模拟淘宝购物车项目实战
Nov 18 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
Dec 22 Javascript
js正则表达式注册页面表单验证
Oct 11 Javascript
Bootstrap整体框架之CSS12栅格系统
Dec 15 Javascript
jQuery动态追加页面数据以及事件委托详解
May 06 jQuery
jQuery实现的简单在线计算器功能
May 11 jQuery
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 Javascript
微信小程序引用公共js里的方法的实例详解
Aug 17 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
Dec 04 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
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
使用symfony命令创建项目的方法
2016/03/17 PHP
Thinkphp 中 distinct 的用法解析
2016/12/14 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
2018/04/04 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
原生js 实现表单验证功能
2021/02/08 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
python中selenium操作下拉滚动条的几种方法汇总
2019/07/14 Python
用Python 执行cmd命令
2020/12/18 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
C++面试题目
2013/06/25 面试题
小学科学教学反思
2014/01/26 职场文书
带薪年假请假条
2014/02/04 职场文书
冬季安全检查方案
2014/05/23 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
店铺转让协议书
2014/12/02 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书