導航:首頁 > 編程語言 > 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數組遞歸相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:61
Windows常用c編譯器 瀏覽:778
關於改善國家網路安全的行政命令 瀏覽:833
安卓如何下載網易荒野pc服 瀏覽:654
javainetaddress 瀏覽:104
蘋果4s固件下載完了怎麼解壓 瀏覽:1002
命令zpa 瀏覽:285
python編譯器小程序 瀏覽:944
在app上看視頻怎麼光線調暗 瀏覽:540
可以中文解壓的解壓軟體 瀏覽:592
安卓卸載組件應用怎麼安裝 瀏覽:912
使用面向對象編程的方式 瀏覽:339
程序員項目經理的年終總結範文 瀏覽:929
內衣的加密設計用來幹嘛的 瀏覽:432
淮安數據加密 瀏覽:292
魔高一丈指標源碼 瀏覽:982
松下php研究所 瀏覽:168
c回調java 瀏覽:399
夢幻端游長安地圖互通源碼 瀏覽:745
電腦本地文件如何上傳伺服器 瀏覽:313