utama kekosongan statik awam(String[] kain buruk){
int [] aim = new int[100];
titik int = 0;
//....Awalkan tatasusunan di sini
int maks = matlamat[0];
maks = dapatkanMaks(maks, mata, matlamat);
//...Pemprosesan lain
}
// Kaedah rekursif
public int getMax(int max,int point,int[] aim){
jika(titik==tujuan.panjang) //nilai kritikal
maksimum pulangan;
//Apabila nilai kritikal tidak tercapai, ambil nilai maksimum dan lakukan rekursi
maks = maks >= matlamat[titik] ?
kembali getMax(maks,mata+1,tuju);}
Bagaimana untuk melaksanakan algoritma rekursif carian binari dalam Java
utama kekosongan statik awam(String[] args) {
//Tentukan tatasusunan Ambil perhatian bahawa tatasusunan carian binari mestilah tatasusunan tertib!
int[] arr = { 1, 3, 5, 7, 9, 11, 13, 15, 17 };
//Terima nilai pulangan selepas carian: nilai indeks, jika tidak, ia adalah -1;
// Elemen cari ujian: 9
int a=binary(arr, 9, 0, arr.length - 1);
System.out.println ("Kedudukan indeks nombor yang sedang dicari ialah: "+a);
}
//Senarai parameter mengikut urutan: tatasusunan untuk dicari, nombor untuk dicari, indeks kepala, indeks ekor!
binari int statik awam(int[] arr, kunci int, bintang int, int end)//rekursi
{
//Buat setiap kali anda masuk, nilai indeks perantaraan!
int pertengahan = (bintang + akhir) / 2;
//Jika nombor yang dicari kurang daripada kepala atau ekor, atau indeks kepala lebih besar daripada indeks ekor, bermakna tiada nombor tersebut dan -1 dikembalikan;
jika (kunci
arr[end] || bintang > tamat) {
kembali -1;}
//Jika nilai tengah kurang daripada nombor yang dicari, takrifkan semula indeks pengepala dan alihkannya ke kedudukan +1 tengah, tapis separuh daripada nombor!
jika (arr[pertengahan] // Mulakan rekursi!
return binary(arr, key, mid + 1, end);
// Jika tidak, jika nilai tengah lebih besar daripada nombor yang dicari, alihkan indeks ekor ke kedudukan tengah -1 dan tapis separuh daripada nombor!
} lain jika (arr[mid] > kunci) {
// Mulakan rekursi!
perduaan pulangan(arr,kunci, bintang, pertengahan - 1);
} lain {
//Jika tidak, didapati, kembali ke indeks!
kembali tengah;
}
}
}
Cara rekursi Java dilaksanakan dan cara perintah itu dilaksanakan
factest(7) memasuki fungsi factest, if(n==1) return 1;
else return n*factest(n-1); // Nilai pulangan ialah 7*factest(6)
……
Sehingga N=1, pada masa ini jika(n==1) kembalikan 1; // Ditubuhkan, nilai pulangan ialah 1, iaitu 1!=1
Kemudian hitung nilai pulangan terfakta(2): 2*terfakta(1) = 2
Kemudian teruskan mengira nilai pulangan terfakta(3): 3*terfakta(2) = 6
... Sehingga N=8, kita dapat fakta(8) = 8*fakta(7) = 40320
Bagaimana menggunakan rekursi untuk menyelesaikan masalah ini dalam JAVA Master
import java.util.Scanner;
GGG kelas awam {
utama kekosongan statik awam(String[] args) {
int N = 0;
Pengimbas sc=Pengimbas baharu(System.in);
int num=sc.nextInt();
untuk(int n=0;n
N=sc.nextInt();
int a[]=int baharu[N];
untuk(int i=0;i
a[i]=sc.nextInt();
}
System.out.print("case"+(n+1)+":");
proses(a,0);
System.out.println();
}
}
proses lompang statik peribadi(int[] a, int n) {
jika(n==0){
jika(isPrime(a[n+1]))
System.out.print(1+" ");
lain
System.out.print(0+"");
}lain jika(n==a.panjang-1){
jika(isPrime(a[n-1]))
System.out.print(1+" ");
lain
System.out.print(0+"");
kembali;
}lain{
jika(isPrime(a[n-1])&isPrime(a[n+1]))
System.out.print(2+"");
lain jika(isPrime(a[n-1])||isPrime(a[n+1]))
System.out.print(1+" ");
lain
System.out.print(0+"");
}
proses(a,n+1);
}
boolean statik awam ialahPrime(int num) {
int i;
untuk(i=2;i
jika(bilangan%i==0)
rehat;
}
jika(i==bilangan){
kembali benar;
}
kembali palsu;
}
}Hasil lari:
2
5
5 7 2 9 13
kes 1:1 2 1 2 0
3
10 4 5
kes 2:0 1 0
Atas ialah kandungan terperinci Tulis fungsi rekursif dalam java untuk mencari nilai maksimum tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!