首页主机资讯C#中如何实现递归的二分查找

C#中如何实现递归的二分查找

时间2024-08-21 20:52:03发布访客分类主机资讯浏览1363
导读:在C#中实现递归的二分查找可以通过编写一个递归函数来实现。下面是一个使用递归方式实现二分查找的示例代码: using System; class BinarySearch { public static int Recursive...

在C#中实现递归的二分查找可以通过编写一个递归函数来实现。下面是一个使用递归方式实现二分查找的示例代码:

using System;


class BinarySearch
{

    public static int RecursiveBinarySearch(int[] array, int target, int min, int max)
    {
    
        if (min >
 max)
        {
    
            return -1;

        }
    
        
        int mid = (min + max) / 2;


        if (array[mid] == target)
        {
    
            return mid;

        }
    
        else if (array[mid] <
 target)
        {
    
            return RecursiveBinarySearch(array, target, mid + 1, max);

        }

        else
        {
    
            return RecursiveBinarySearch(array, target, min, mid - 1);

        }

    }


    static void Main()
    {

        int[] array = {
 2, 5, 8, 12, 16, 23, 38, 56, 72, 91 }
    ;
    
        int target = 23;
    
        int result = RecursiveBinarySearch(array, target, 0, array.Length - 1);


        if (result != -1)
        {
    
            Console.WriteLine("Element found at index: " + result);

        }

        else
        {
    
            Console.WriteLine("Element not found in the array");

        }

    }

}
    

在上面的示例代码中,定义了一个RecursiveBinarySearch函数来实现递归的二分查找。在函数中,首先判断最小索引是否大于最大索引,如果是则返回-1表示未找到目标值。然后计算中间索引,如果中间值等于目标值,则返回中间索引,否则根据中间值与目标值的大小关系递归调用函数继续查找左半部分或右半部分。在Main函数中调用RecursiveBinarySearch函数并输出结果。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: C#中如何实现递归的二分查找
本文地址: https://pptw.com/jishu/695130.html
C#中二分法的边界条件处理 C#二分法与其他查找算法的比较

游客 回复需填写必要信息