生成可重复的排列(递归)
2018-02-02 10:46
225 查看
package ppt;
import java.util.ArrayList;
public class Demo22_1
{
private static ArrayList<Integer> tmp = new ArrayList<Integer>();
public static void main(String[] args) {
int[] arr = new int[] {1,2,3,4,5,6,7,8};
repeatArr(100,arr);
}
public static void repeatArr(int k,int[] arr)
{
if(k==1)
{
for(int i=0;i<arr.length;i++)
{
tmp.add(arr[i]);
System.out.println(tmp.toString());
tmp.remove(tmp.size()-1);
}
}
else if(k>1)
{
for(int i=0;i<arr.length;i++)
{
tmp.add(arr[i]);
repeatArr(k-1,arr);
tmp.remove(tmp.size()-1);
}
}
else
{
return;
}
}
}
递归式很好,可是当我运算10层k的时候递归就太慢了,一层套一层
import java.util.ArrayList;
public class Demo22_1
{
private static ArrayList<Integer> tmp = new ArrayList<Integer>();
public static void main(String[] args) {
int[] arr = new int[] {1,2,3,4,5,6,7,8};
repeatArr(100,arr);
}
public static void repeatArr(int k,int[] arr)
{
if(k==1)
{
for(int i=0;i<arr.length;i++)
{
tmp.add(arr[i]);
System.out.println(tmp.toString());
tmp.remove(tmp.size()-1);
}
}
else if(k>1)
{
for(int i=0;i<arr.length;i++)
{
tmp.add(arr[i]);
repeatArr(k-1,arr);
tmp.remove(tmp.size()-1);
}
}
else
{
return;
}
}
}
递归式很好,可是当我运算10层k的时候递归就太慢了,一层套一层
相关文章推荐
- 递归求解几类排列组合问题(六、非重复生成全子集组合排列)
- 递归的思想生成排列组合
- 剑指Offer28字符串的排列(递归和非递归实现)扩展有重复元素的排列,字符串的组合种类
- 递归求排列和组合(无重复和有重复)
- Oracle procedure递归方法生成有规律唯一不重复且连续的流水号(处理字母数字)
- 递归方法求不重复排列
- Permutations 排列的生成, 递归
- 使用递归的方法生成一个序列的所有排列
- 生成排列的非递归实现算法
- 排列生成——递归
- 生成排列的递归方法
- 递归求解几类排列组合问题(五、生成全子集组合排列)
- 生成1-n的排列(使用递归)
- 递归 生成全排列
- 不重复排列的生成
- 12个字母任选5个进行排列组合,不可重复 javascript 递归实现
- 递归学习_组合_生成全子集组合排列(不含空集)
- 递归 —— 生成排列
- 递归生成n个元素的所有排列方式
- 非重复生成全子集组合排列(含重复数字时,生成不重复全子集组合排列)