91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C#中如何實現遞歸的二分查找

c#
小樊
82
2024-08-21 08:46:30
欄目: 編程語言

在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函數并輸出結果。

0
容城县| 美姑县| 西青区| 莱西市| 静宁县| 长宁县| 郯城县| 廊坊市| 兴安盟| 正安县| 辽宁省| 沅陵县| 灌云县| 保靖县| 广平县| 襄汾县| 确山县| 盐源县| 台中市| 鄂伦春自治旗| 景德镇市| 浪卡子县| 松溪县| 鹤峰县| 通渭县| 唐海县| 贵德县| 名山县| 渑池县| 龙南县| 蚌埠市| 抚宁县| 巴中市| 兴文县| 安达市| 元朗区| 古田县| 科技| 屏山县| 石城县| 南木林县|