Rumah  >  Artikel  >  Java  >  Bagaimana untuk menggunakan rekursi dalam algoritma carian binari Java?

Bagaimana untuk menggunakan rekursi dalam algoritma carian binari Java?

WBOY
WBOYke hadapan
2023-05-09 18:40:08786semak imbas

1. Konsep rekursif

Teknik pengaturcaraan di mana program memanggil dirinya sendiri dipanggil rekursi. Jadikan masalah berskala besar kepada masalah berskala kecil Masalahnya tetap sama dan skalanya menjadi lebih kecil.

2. Dua premis

Syarat penamatan - apabila syarat tertentu dipenuhi, fungsi mengembalikan nilai tertentu dan tidak lagi memanggil secara rekursif

Panggilan secara rekursif ——Fungsi memanggil dirinya sendiri, dan nilai inputnya lebih dekat dengan keadaan penamatan

3. Contoh carian binari rekursif

/**
     * 递归实现二分查找
     * @param arr
     * @param left
     * @param right
     * @param val
     * @return
     */
private static int binarySearch(int[] arr, int left, int right, int val) {
        if (val < arr[left] || val > arr[right] || left > right) {
            return -1;
        }
        int middle = (left + right)/2;
        if(val < arr[middle]){
            return binarySearch (arr,0,middle-1,val);
        }
        if(val > arr[middle]){
            return binarySearch (arr,middle+1,right,val);
        }else{
            return middle;
        }
}

Atas ialah kandungan terperinci Bagaimana untuk menggunakan rekursi dalam algoritma carian binari Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam