中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

如何在C#中使用泛型實現二分查找

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

下面是一個使用泛型實現二分查找的例子:

using System;

class BinarySearch<T> where T : IComparable
{
    public static int Search(T[] array, T value)
    {
        int min = 0;
        int max = array.Length - 1;

        while (min <= max)
        {
            int mid = (min + max) / 2;

            if (array[mid].CompareTo(value) == 0)
            {
                return mid;
            }
            else if (array[mid].CompareTo(value) < 0)
            {
                min = mid + 1;
            }
            else
            {
                max = mid - 1;
            }
        }

        return -1;
    }
}

class Program
{
    static void Main()
    {
        int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        int value = 5;

        int index = BinarySearch<int>.Search(array, value);

        if (index != -1)
        {
            Console.WriteLine($"Value {value} found at index {index}");
        }
        else
        {
            Console.WriteLine($"Value {value} not found in array");
        }
    }
}

在這個例子中,我們使用泛型 T 來表示數組和要查找的值的類型。我們要求 T 必須實現 IComparable 接口,以便能夠使用 CompareTo 方法來比較兩個對象。然后我們定義了一個 BinarySearch 類,其中包含一個靜態方法 Search,該方法接受一個數組和要查找的值,并返回該值在數組中的索引(如果存在)或 -1(如果不存在)。在 Main 方法中,我們創建了一個整數數組,并使用 BinarySearch 類來查找值 5 在數組中的位置。

0
武义县| 那坡县| 东山县| 乐业县| 房产| 自治县| 聂荣县| 新源县| 南丰县| 凤台县| 锡林郭勒盟| 泽州县| 互助| 汾阳市| 邵阳市| 京山县| 苏尼特右旗| 宣武区| 海阳市| 黎城县| 安陆市| 威信县| 平定县| 铜梁县| 青海省| 夏河县| 霍城县| 白山市| 黄浦区| 周宁县| 建瓯市| 闵行区| 晋州市| 九龙县| 彝良县| 吉隆县| 中卫市| 白银市| 凤庆县| 广德县| 南宫市|