递归实现数组shuffle

function insertArr(arr,newarr){

  var num=parseInt(Math.random()*arr.length);

  newarr.push(arr.splice(num,1)[0]);

  if(arr.length==0){

    return newarr;

  } else {

    return insertArr(arr,newarr);
  }
}

insertArr([1,2,3,4,5,6],[]);

时间: 2024-10-11 23:12:06

递归实现数组shuffle的相关文章

递归实现数组求和

#include<stdio.h> int sum(int* a, int n) { return (0 == n)?0:(sum(a,n-1) + a[n-1]); } void sum1(int* a, int n,int& s) { if(0 == n) return; else { s = s + a[n-1]; sum1(a,n-1,s); } } ///用return方案的话,就是先可以递归最底层,然后再从最底层开始计算回来,从下层向上层传数据 ///如果使用形参的话,在递

如何递归实现数组求和

如何用递归实现数组求和 给定一个含有n个元素的整形数组a,求a中所有元素的和. 非递归算法: int sumr(int *a,int n) { int sum=0; for(int i=0;i<n;i++) sum+=a[i]; return sum; } 递归算法: int sum(int *a,int n) { return n==0?0:sum(a,n-1)+a[n-1]; } 递归实现的方法,如果数组元素个数为0,那么和为0,如果元素个数为n,那么先求出前n-1个元素的和,再加上a[n-

递归取数组数据

一.问题描述通过递归的方式取出嵌套多层的数组数据,var crazyArr = [1,2,[3,4,[5]],6,[7,[8,9,[10,11,[12]]]]]; 二.解决方案 //方法1 function fillArray(arr,result){ var count = arr.length; var i = 0; for(;i<count;++i){ var temp = arr[i]; if(Array.isArray(temp)){ fillArray(temp,result); }

Javascript利用递归实现数组的快速排序

// 定义快速排序方法 function quickSort(arr){ // 设置递归的终止条件 if( arr.length <= 1){ return arr; } // 获得数组arr的中间索引和中间索引对应的值 var middleNum = Math.floor(arr.length/2); var middleValue = arr.splice(middleNum, 1); // 定义数组,left用于存放小于中间值的数,right用于存放大于中间值的数 var left = [

通过递归使数组中没有重复项

//数组中删除值相同的项,使得数组中没有重复的项//数组自己的方法splice(a,b),在每次使用后会返回一个新的数组,因此必须使用递归得方法来使数组中相同的项删除,如果不这样就达不到这样的效果,有些项会被忽略掉//比如下面这个例子,如果不使用递归,输出的将是1,2,3,4,5,6,7,1很明显第一项和最后一项是相同的,没有达到我们预期的效果//使用递归就不存在这个问题了,输出将是1,2,3,4,5,6,7; 1 var arrzfs = [1,2,2,3,4,4,1,3,5,6,7,7,1,

经典算法详解(11)递归查找数组中的最大值

题目:编写一个程序,用递归的方法实现查找数组中的最大值. C++实现 1 #include<iostream> 2 3 using namespace std; 4 //第一种方法是常规方法,不是使用递归,首先将第一个元素的值赋值给max,然后遍历数组, 5 //当遇到超高max的值时将其赋值给max,最后就将得到最大值 6 int getMax_fir(int *arr,int n) { 7 int max = arr[0]; 8 for (int i = 1; i < n; i++)

[Swift]LeetCode384. 打乱数组 | Shuffle an Array

Shuffle a set of numbers without duplicates. Example: // Init an array with set 1, 2, and 3. int[] nums = {1,2,3}; Solution solution = new Solution(nums); // Shuffle the array [1,2,3] and return its result. Any permutation of [1,2,3] must equally lik

递归求数组的最大值

科大讯飞的一个线下笔试题 对递归也一直不熟悉 题目:求一个数列的最大值,用递归形式: public class blanket{ public static void main(String[] args) { int[] a = {1,9,2,5,3,7,4,6,12,435,67,23,232,564564,5}; int max1 = max(a,0,0); System.out.println(max1); // return max1; } public static int max(

php 递归 返回数组

private function tree_data(&$list, $parent){ $tree = array(); foreach($list as $row) { if($row['permission_parent_id'] == $parent) { $row['children'] = $this->tree_data($list, $row['permission_id']); $tree[] = $row; } } return $tree;}