JS实现的数组全排列输出算法

 更新时间:2015年03月19日 16:42:26   作者:八大山人  
这篇文章主要介绍了JS实现的数组全排列输出算法,实例分析了全排列的原理与相关的javascript实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • mapboxgl实现带箭头轨迹线的代码

    mapboxgl实现带箭头轨迹线的代码

    这篇文章主要介绍了mapboxgl实现带箭头轨迹线的代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • javascript九宫格图片随机打乱位置的实现方法

    javascript九宫格图片随机打乱位置的实现方法

    这篇文章主要为大家详细介绍了javascript九宫格图片随机打乱位置的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 详解JS中异常与错误处理的正确方法

    详解JS中异常与错误处理的正确方法

    这篇文章主要和大家分享了一些JavaScript中异常与错误处理的正确方法,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以参考一下
    2023-04-04
  • JS 实现请求调度器

    JS 实现请求调度器

    这篇文章主要介绍了JS 实现请求调度器的方法,帮助大家更好的理解和学习使用js,感兴趣的朋友可以了解下
    2021-03-03
  • JavaScript中的Proxy对象

    JavaScript中的Proxy对象

    这篇文章主要介绍了JavaScript中的Proxy对象的相关资料,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下
    2020-11-11
  • JavaScript 栈的详解及实例代码

    JavaScript 栈的详解及实例代码

    这篇文章主要介绍了JavaScript 栈的详解及实例代码的相关资料,需要的朋友可以参考下
    2017-01-01
  • 使用VSCode调试Electron主进程的方法步骤

    使用VSCode调试Electron主进程的方法步骤

    本文主要介绍了使用VSCode调试Electron主进程的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 浅谈javascript中lodash与lodash-es的区别

    浅谈javascript中lodash与lodash-es的区别

    本文主要介绍了javascript中lodash与lodash-es的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • js的with语句使用方法

    js的with语句使用方法

    js的with语句使用方法...
    2007-09-09
  • JS多物体实现缓冲运动效果示例

    JS多物体实现缓冲运动效果示例

    这篇文章主要介绍了JS多物体实现缓冲运动效果的方法,涉及javascript基于时间函数进行动态运算实现页面元素动态操作的相关技巧,需要的朋友可以参考下
    2016-12-12

最新评论