使用javascript实现全排列算法

var Ann = function a(arr){  

if(arr.length == 1){return arr;}  

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

//get a copy
var ar = new Array();
for(var j = 0; j < arr.length;j++){ar[j] = arr[j];}  

//assume i
var current = ar[i];
ar.splice(i,1);  

var childRet = a(ar);  

for(var k = 0 ;k < childRet.length;k++){
rr.push(current + "," + childRet[k]);
}  

}  

return rr;
}  

var ret = Ann(new Array(1,2,3,4));
console.log(ret);

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/script/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javascript
, 算法
, function
, var
, length
arr
全排列的递归实现算法、javascript 算法、javascript算法题、javascript排序算法、javascript算法与结构,以便于您获取更多的相关知识。

时间: 2024-09-11 23:25:44

使用javascript实现全排列算法的相关文章

javascript常用经典算法实例详解_javascript技巧

本文实例讲述了javascript常用算法.分享给大家供大家参考,具体如下: 入门级算法-线性查找-时间复杂度O(n)--相当于算法界中的HelloWorld //线性搜索(入门HelloWorld) //A为数组,x为要搜索的值 function linearSearch(A, x) { for (var i = 0; i < A.length; i++) { if (A[i] == x) { return i; } } return -1; } 二分查找(又称折半查找) - 适用于已排好序的

javascript-关于JavaScript 国密算法

问题描述 关于JavaScript 国密算法 谁有研究国密算法,JavaScript写的SM4算法 最近在看这个 实在没有头绪 不知道怎么写 谁能给一些建议或者一些模块的代码 解决方案 基于现有已实现的C#版SM2国密算法的签名验证,再结合原来JavaScript的ECC算法,使用JavaScript实现SM2国密算法的签名验证相对简单,只需要将C#语言翻译成JavaScript语言实现.不过中间还是遇到了些问题,主要是在JavaScript计算SM3摘要值大数的运算上还是有些不同. 1)JS计

PHP全排列算法实现程序代码

  从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列.当m=n时所有的排列情况叫全排列. 简介 如1,2,3三个元素的全排列为: 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 共3*2*1=6种 3! 2公式 全排列数f(n)=n!(定义0!=1) 递归算法 1,2,3 1,3,2 2,1,3 2,3,1 3,2,1 3,1,2 这是由于算法只是考虑到了如何输出全排列,而没有考虑到换位是否有问题.所以我提出了解决

Javascript数据结构与算法之列表详解

 这篇文章主要介绍了Javascript数据结构与算法之列表详解,本文讲解了列表的抽象数据类型定义.如何实现列表类等内容,需要的朋友可以参考下     前言:在日常生活中,人们经常要使用列表,比如我们有时候要去购物时,为了购物时东西要买全,我们可以在去之前,列下要买的东西,这就要用的列表了,或者我们小时候上学那段时间,每次考完试后,学校都会列出这次考试成绩前十名的同学的排名及成绩单,等等这些都是列表的列子.我们计算机内也在使用列表,那么列表适合使用在什么地方呢?不适合使用在什么地方呢? 适合使用

JavaScript数据结构与算法之栈详解

 这篇文章主要介绍了JavaScript数据结构与算法之栈详解,本文讲解了对栈的操作.对栈的实现实例等内容,需要的朋友可以参考下     在上一篇博客介绍了下列表,列表是最简单的一种结构,但是如果要处理一些比较复杂的结构,列表显得太简陋了,所以我们需要某种和列表类似但是更复杂的数据结构---栈.栈是一种高效的数据结构,因为数据只能在栈顶添加或删除,所以这样操作很快,而且容易实现. 一:对栈的操作. 栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端陈为栈顶.比如餐馆里面洗盘子,只能先洗

JavaScript数据结构和算法之图和图算法

 这篇文章主要介绍了JavaScript数据结构和算法之图和图算法,本文讲解了有向图.无序图.简单图.图的遍历等内容,需要的朋友可以参考下     图的定义 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合. 有向图 有向边:若从顶点Vi到Vj的边有方向,则称这条边为有向边,也成为弧(Arc),用有序偶<Vi,Vj>来表示,Vi称为弧尾,Vj称为弧头. 无序图 无向边:若顶点Vi到Vj之间的边没

JavaScript数据结构和算法之二叉树详解

 这篇文章主要介绍了JavaScript数据结构和算法之二叉树详解,本文讲解了二叉树的概念.二叉树的特点.二叉树节点的定义.查找最大和最小值等内容,需要的朋友可以参考下     二叉树的概念 二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根结点和两棵互不相交的.分别称为根结点的左子树和右子树的二叉树组成. 二叉树的特点 每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点.二叉树中每一个节点都是一个对象,每一个数据节点都有三个指针,

代码-【递归】全排列算法的问题

问题描述 [递归]全排列算法的问题 class AnagramApp { static char[] arrChar; static int size; public static void main(String[] args) { String input = "abc"; arrChar =input.toCharArray(); size =input.length(); doAnagram(input.length()); } public static void doAna

JavaScript数据结构与算法之栈与队列_基础知识

学习起因 曾经有一次在逛V2EX时,碰到这么一个帖子. 数学完全还给老师了,想学回一些基础数学,大概是高中程度的,有什么书籍推荐? 发帖的楼主大学没有高数课程,出去工作时一直在从事前端的工作.感觉到数学知识的匮乏,所以想补一补数学. 看了看帖子,感觉和我很像,因为我的专业是不开高数的,我学的也是前端.也同样感觉到了数学知识匮乏所带来的困顿.同时因为自己的数学思维实在是不怎么好,所以决定努力补习数学与计算机基础知识. 当时也有人说:"前端需要什么数据结构与算法",但是对于这个事情我有自己