导航:首页 > 编程语言 > java数组递归

java数组递归

发布时间:2022-04-03 14:14:07

‘壹’ java 递归

花了将近一天时间才实现任意长度的字符串所有可能的排列,下面分享一下成果

里面最重要的思想是:假定已经将n-1个字符组成的字符所有可能的排列算好了,将它们放到List中存放着。在依次取出每个元素,那么将新增的字符插入这个元素的n个位置上,那么每个元素就会产生新的n个字符的排列了。

所以:总共产生的排列个数=List中已有元素个数 乘以 n

优化前代码如下:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
*
* @author chenhui
*
*/
public class TestArrayABC {

/**
* @param str 字符串str中每个字符都不相同
* @return 字符串str所有可能的排列
*/
public List<String> doCompute(String str)
{
List<String> list = new ArrayList<String>();
List<String> temp = new ArrayList<String>();
temp.addAll(list);
list.removeAll(null);
if(str.length() == 1)
{
list.add(str);
return list;
}
else
{
char ch = str.charAt(0);
temp = doCompute(str.substring(1));
for(int j = 0; j < temp.size(); j++)
{
String s = temp.get(j);
char[] charArray = s.toCharArray();
char[] tempArray = new char[s.length() + 1];
//将ch分别放到charArray.length + 1个位置
for(int k = 0; k < charArray.length + 1; k++)
{
for(int i = 0; i < charArray.length + 1; i++)
{
if(i < k)
{
tempArray[i] = charArray[i];
}
else if(i == k)
{
tempArray[i] = ch;
}
else
{
tempArray[i] = charArray[i - 1];
}
}
list.add(j, new String(tempArray));
}
}
return list;
}
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

TestArrayABC abc = new TestArrayABC();
List<String> list = abc.doCompute(

‘贰’ 怎样用java实现递归求一个数组的最大值

其实思想很简单遍历数组如果第一个数比第二个数小那么交换他们的位置并再次调用自身方法
如果第一个数比下一个大那么方法继续执行
publicclassTest{

publicstaticvoidmain(String[]args){

int[]data={15,56,89,74,52,1,25,36,100};

show(data);

System.out.println(data[0]);

}

publicstaticvoidshow(int[]a){

for(inti=0;i<a.length-1;i++){

if(a[i]<a[i+1]){

inttemp=a[i];

a[i]=a[i+1];

a[i+1]=temp;

show(a);

}

}

}

}

‘叁’ 用Java实现:使用递归输出数组元素

publicclassTest
{
publicstaticvoidoutArrayData(int[]array,inti)
{
System.out.print(array[i]+"");
if(i>=array.length-1)
{
return;
}
else
{
i++;
outArrayData(array,i);
}
}
publicstaticvoidmain(String[]args)
{
intarray[]=newint[]{25,56,36,55,96,87,97,74};
outArrayData(array,0);
}
}

顺便说一句:

楼上这种渣笔程序员,连个递归都不会写,还是网络知道行家,真是一群猪一样的管理员。

‘肆’ 怎么用Java递归输出数组

List<use> a;

for(use c:a){
system.out.print(c)
};
a是数组,a里面每个元素的类型是use,所以输出每一个数组元素时这是比较简单的递归输出

‘伍’ 递归将一个整数存放到一个数组中 用java怎么实现

意思是说,把一个整数拆分了。把他每个数字存入数组么?

‘陆’ Java数组问题。从键盘输入一组数据,然后请你用递归的方法求出数组元素中的所有元素的和

public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);//输入你想要计算的数字
//使用for循环依次往数组里添加
int a[]=new int[10];
for(int i=0;i<a.length;i++)
{
System.out.println("请输入一个整数");
a[i]=sc.nextInt();
System.out.println(a[i]);
}
System.out.println(a);
int sum=0;
for(int i=0;i<a.length;i++)
{
sum+=a[i];
}
}
System.out.println(sum);
}

‘柒’ 递归 java语言 输出数组的元素

进入printArray(int i)这个方法后,会执行printArray(i - 1);这条语句,一直等待其返回。当i == 0时,此方法返回void, 继续执行下面的语句System.out.println("[" + (i - 1) + "] " + values[i - 1]);
最后会输出values[0],即数组的第一个数。

java中的函数一般都是同步输入输出流的,即调用一个函数,程序必须等待其返回,才会继续执行下一条语句。

‘捌’ 怎么用Java递归输出数组

完全不需要用到递归实现。这个用递归实现就是牛刀杀鸡,效率还低。

‘玖’ Java给定数组,用递归方法判定是否有序

public class Main {

public static void main(String[] args) {
int []A={1,2,3};
System.out.println(isArrayInSortedOrder(A,A.length));

}

//1.给定一个数组,用递归方法判定数组元素是否有序
static int isArrayInSortedOrder(int[] A, int index){
if (A.length==1) return 1;
return (A[index-1]<=A[index-2])?0:isArrayInSortedOrder(A,index-1);
}

}

阅读全文

与java数组递归相关的资料

热点内容
算法工程师不玩游戏 浏览:291
浙江ntp校时服务器配置云空间 浏览:834
心理有根源怎么解压 浏览:683
资金爆发指标源码 浏览:426
stata命令缩写 浏览:449
java写入文件内容 浏览:885
加密货购买途径 浏览:438
md5源码查询 浏览:331
单片机测量 浏览:303
deboor算法 浏览:839
linuxftp550 浏览:635
命令行修改文件名 浏览:591
安卓系统408如何关闭启停 浏览:696
怎么才能让安卓手机崩溃 浏览:149
连接云服务器今日价格 浏览:117
百灵之音加密图片 浏览:624
javalinkedlist删除 浏览:539
用纸做无限拉伸解压弹簧 浏览:980
红塔银行app流水怎么导出 浏览:377
javascriptphpjson 浏览:114