Rumah > Java > javaTutorial > teks badan

Bagaimana untuk mencari nilai maksimum melalui perbandingan rekursif di Jawa

王林
Lepaskan: 2023-04-24 12:52:15
ke hadapan
770 orang telah melayarinya

Perbandingan rekursif

Inti perbandingan rekursif adalah untuk mentakrifkan dua kedudukan dahulu (kedudukan mula dan kedudukan akhir), dan membandingkan nilai kedudukan mula dan kedudukan akhir setiap kali daripada kedudukan permulaan adalah lebih besar daripada nilai kedudukan akhir, tetapkan nilai maksimum kepada nilai kedudukan mula, kemudian tetapkan kedudukan akhir -1 (bergerak satu bit ke hadapan), dan teruskan panggilan rekursif, sebaliknya apabila nilai kedudukan akhir adalah lebih besar daripada kedudukan mula, tetapkan nilai maksimum kepada nilai kedudukan akhir, tambahkan kedudukan permulaan sebanyak 1 (bergerak satu bit ke belakang), teruskan memanggil perbandingan secara rekursif, dan kembalikan nilai maksimum sehingga akhir daripada rekursi. Proses pelaksanaan adalah seperti yang ditunjukkan dalam rajah di bawah:

Bagaimana untuk mencari nilai maksimum melalui perbandingan rekursif di Jawa


Kod pelaksanaan adalah seperti berikut:

<code>public class ArrayMax {<br>    public static void main(String[] args) {<br>        int[] arr = {3, 7, 2, 1, -4};<br>        int max = findMaxByRecursive(arr, 0, arr.length - 1, 0); // 根据 Collections 查找最大值<br>        System.out.println("最大值是:" + max);<br>    }<br><br>    /**<br>     * 根据递归查询最大的值<br>     * @param arr  待查询数组<br>     * @param head 最前面的元素的下标<br>     * @param last 最末尾的元素的下标<br>     * @param max  (临时)最大值<br>     * @return 最大值<br>     */<br>    private static int findMaxByRecursive(int[] arr, int head, int last, int max) {<br>        if (head == last) {<br>            // 递归完了,返回结果<br>            return max;<br>        } else {<br>            if (arr[head] > arr[last]) {<br>                max = arr[head]; // 赋最大值<br>                // 从后往前移动递归<br>                return findMaxByRecursive(arr, head, last - 1, max);<br>            } else {<br>                max = arr[last]; // 赋最大值<br>                // 从前往后移动递归<br>                return findMaxByRecursive(arr, head + 1, last, max);<br>            }<br>        }<br>    }<br>}<br></code>
Salin selepas log masuk

The hasil pelaksanaan program di atas ialah:

Nilai maksimum ialah: 7

Atas ialah kandungan terperinci Bagaimana untuk mencari nilai maksimum melalui perbandingan rekursif di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
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