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 相关文章推荐
javascript高亮效果的二种实现方法
Sep 14 Javascript
jQuery操作select的实例代码
Jun 14 Javascript
原生js实现给指定元素的后面追加内容
Apr 10 Javascript
20行代码实现的一个CSS覆盖率测试脚本
Jul 07 Javascript
解析javascript 浏览器关闭事件
Jul 08 Javascript
jquery实现炫酷的叠加层自动切换特效
Feb 01 Javascript
jQuery中的pushStack实现原理和应用实例
Feb 03 Javascript
Jquery中$.post和$.ajax的用法小结
Apr 28 Javascript
JavaScript 详解预编译原理
Jan 22 Javascript
vue select二级联动第二级默认选中第一个option值的实例
Jan 10 Javascript
详解Vue 动态组件与全局事件绑定总结
Nov 11 Javascript
在VUE中使用lodash的debounce和throttle操作
Nov 09 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
开源SNS系统-ThinkSNS
2008/05/18 PHP
PHP一些常用的正则表达式字符的一些转换
2008/07/29 PHP
php设计模式  Command(命令模式)
2011/06/17 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
jQuery使用手册之一
2007/03/24 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
详解JavaScript函数
2015/12/01 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
详解vue-validator(vue验证器)
2017/01/16 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
JS+canvas画一个圆锥实例代码
2017/12/13 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
Python交换变量
2008/09/06 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
Python中反射和描述器总结
2018/09/23 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
Python如何解除一个装饰器
2020/08/07 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
怎样声明接口
2014/09/19 面试题
蜜蜂引路教学反思
2014/02/04 职场文书
岗位明星事迹材料
2014/05/18 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
银行自荐信怎么写
2015/03/05 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python