亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

如何在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
芷江| 长乐市| 东莞市| 隆化县| 东乡县| 长顺县| 九龙城区| 台东市| 石楼县| 泰安市| 内黄县| 东海县| 页游| 延津县| 汉沽区| 宣恩县| 东乡族自治县| 东宁县| 武威市| 义乌市| 康乐县| 扎兰屯市| 华蓥市| 和林格尔县| 龙口市| 贵州省| 五大连池市| 临武县| 南平市| 郎溪县| 孝昌县| 山东省| 青田县| 东丰县| 丰台区| 安新县| 凤庆县| 铜山县| 五台县| 博客| 灵川县|