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中的isXX系列是否继续使用的分析
Apr 16 Javascript
javascript与jquery中跳出循环的区别总结
Nov 04 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
Jan 13 Javascript
BootStrap daterangepicker 双日历控件
Jun 02 Javascript
Async Validator 异步验证使用说明
Jul 03 Javascript
Javascript实现异步编程的过程
Jun 18 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
Jun 29 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
Sep 30 Javascript
Vue中图片Src使用变量的方法
Oct 30 Javascript
JS自定义对象创建与简单使用方法示例
Jan 15 Javascript
VueCli生产环境打包部署跨域失败的解决
Nov 13 Javascript
Vue实现tab导航栏并支持左右滑动功能
Jun 28 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
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
2015/03/05 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
jQuery实现简单弹幕制作
2020/12/10 jQuery
跟老齐学Python之网站的结构
2014/10/24 Python
用Python编写生成树状结构的文件目录的脚本的教程
2015/05/04 Python
python学习 流程控制语句详解
2016/06/01 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
2017/11/02 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
Java提供了哪些企业应用编程接口
2015/02/13 面试题
成人教育自我鉴定
2013/11/01 职场文书
志愿者事迹材料
2014/12/26 职场文书
美术教师个人总结
2015/02/06 职场文书
教师节倡议书2015
2015/04/27 职场文书
行政处罚事先告知书
2015/07/01 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
朋友离别感言
2015/08/04 职场文书
教师病假条范文
2015/08/17 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫