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

溫馨提示×

如何在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
鲜城| 宜昌市| 高邮市| 竹北市| 称多县| 会理县| 莒南县| 海盐县| 奎屯市| 彭山县| 辽源市| 萨迦县| 武穴市| 陕西省| 青阳县| 紫金县| 都兰县| 康保县| 溧阳市| 建始县| 崇左市| 毕节市| 江达县| 长白| 南涧| 玉屏| 安宁市| 银川市| 金阳县| 龙里县| 高密市| 习水县| 巢湖市| 太保市| 普格县| 大洼县| 布尔津县| 舞阳县| 营口市| 新竹市| 根河市|