Rumah > tutorial komputer > pengetahuan komputer > Tulis fungsi rekursif dalam java untuk mencari nilai maksimum tatasusunan

Tulis fungsi rekursif dalam java untuk mencari nilai maksimum tatasusunan

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-01-13 19:06:23
ke hadapan
1078 orang telah melayarinya

Cara menggunakan java untuk mencapai nilai maksimum tatasusunan secara rekursif

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

carian rekursif binari kelas awam {

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;

}

}

}

Tulis fungsi rekursif dalam java untuk mencari nilai maksimum tatasusunan

Cara rekursi Java dilaksanakan dan cara perintah itu dilaksanakan

factest(8) memasuki fungsi factest, if(n==1) return 1; // Jika tidak ditubuhkan, laksanakan else return n*factest(n-1); )

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

Program rekursif Java yang anda ingin tulis adalah seperti berikut:

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan