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+jqmodal弹出窗口实现代码分明
Jun 14 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
Dec 12 Javascript
sails框架的学习指南
Dec 22 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
Oct 19 Javascript
学习JavaScript事件流和事件处理程序
Jan 25 Javascript
jQuery插件扩展实例【添加回调函数】
Nov 26 Javascript
JavaScript两种计时器的实例讲解
Jan 31 Javascript
VUE搭建手机商城心得和遇到的坑
Feb 21 Javascript
react 组件传值的三种方法
Jun 03 Javascript
过滤器vue.filters的使用方法实现
Sep 18 Javascript
JS变量提升原理与用法实例浅析
May 22 Javascript
Vue初始化中的选项合并之initInternalComponent详解
Jun 11 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
模拟xcopy的函数
2006/10/09 PHP
PHP得到某段时间区间的时间戳 php定时任务
2012/04/12 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
javascript实现数独解法
2015/03/14 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
简单介绍Python中的JSON模块
2015/04/08 Python
Python实现批量压缩图片
2018/01/25 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
Python魔法方法功能与用法简介
2019/04/04 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
浅析Python 序列化与反序列化
2020/08/05 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
python装饰器代码深入讲解
2021/03/01 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
C语言编程题
2015/03/09 面试题
函授本科个人自我鉴定
2014/03/25 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
学校运动会报道稿
2014/09/23 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
实名检举信范文
2015/03/02 职场文书
同事去世追悼词
2015/06/23 职场文书
植树节新闻稿
2015/07/17 职场文书
初中数学教学反思范文
2016/02/17 职场文书