JavaScript实现穷举排列(permutation)算法谜题解答


Posted in Javascript onDecember 29, 2014

谜题

穷举一个数组中各个元素的排列

策略

减而治之、递归

JavaScript解


/**

 * Created by cshao on 12/23/14.

 */
function getPermutation(arr) {

  if (arr.length == 1) {

    return [arr];

  }
  var permutation = [];

  for (var i=0; i<arr.length; i++) {

    var firstEle = arr[i];

    var arrClone = arr.slice(0);

    arrClone.splice(i, 1);

    var childPermutation = getPermutation(arrClone);

    for (var j=0; j<childPermutation.length; j++) {

      childPermutation[j].unshift(firstEle);

    }

    permutation = permutation.concat(childPermutation);

  }

  return permutation;

}
var permutation = getPermutation(['a','b','c']);

console.dir(permutation);

结果

[ [ 'a', 'b', 'c' ],

  [ 'a', 'c', 'b' ],

  [ 'b', 'a', 'c' ],

  [ 'b', 'c', 'a' ],

  [ 'c', 'a', 'b' ],

  [ 'c', 'b', 'a' ] ]
Javascript 相关文章推荐
js中查找最近的共有祖先元素的实现代码
Dec 30 Javascript
js给onclick赋值传参数的两种方法
Nov 25 Javascript
display和visibility的区别示例介绍
Feb 26 Javascript
js/jquery获取文本框输入焦点的方法
Mar 04 Javascript
原生js的弹出层且其内的窗口居中
May 14 Javascript
js实现鼠标经过时图片滚动停止的方法
Feb 16 Javascript
jQuery实现的简单在线计算器功能
May 11 jQuery
浅谈mint-ui 填坑之路
Nov 06 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
May 31 Javascript
JavaScript图像放大镜效果实现方法详解
Jun 28 Javascript
JS实现超级好看的鼠标小尾巴特效
Dec 01 Javascript
three.js显示中文字体与tween应用详析
Jan 04 Javascript
浅谈JavaScript Array对象
Dec 29 #Javascript
JavaScript实现N皇后问题算法谜题解答
Dec 29 #Javascript
jQuery中dequeue()方法用法实例
Dec 29 #Javascript
jQuery中queue()方法用法实例
Dec 29 #Javascript
浅谈JavaScript function函数种类
Dec 29 #Javascript
JavaScript异步加载浅析
Dec 28 #Javascript
JavaScript设计模式之工厂方法模式介绍
Dec 28 #Javascript
You might like
php cookies中删除的一般赋值方法
2011/05/07 PHP
php安装swoole扩展的方法
2015/03/19 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
jsTree使用记录实例
2016/12/01 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
2016/12/28 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
python设置windows桌面壁纸的实现代码
2013/01/28 Python
python简单实现获取当前时间
2016/08/27 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
Django中url的反向查询的方法
2018/03/14 Python
Python多继承顺序实例分析
2018/05/26 Python
Flask之flask-session的具体使用
2018/07/26 Python
python用post访问restful服务接口的方法
2018/12/07 Python
详解重置Django migration的常见方式
2019/02/15 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
大学生新闻专业个人自我评价
2013/11/12 职场文书
创意活动策划书
2014/01/15 职场文书
物流管理毕业生自荐信范文
2014/03/15 职场文书
爱情保证书大全
2014/04/29 职场文书
早读课迟到检讨书
2014/09/25 职场文书
家装业务员岗位职责
2015/04/03 职场文书
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python