首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用委托条件二进制搜索C#列表

在云计算领域,二进制搜索是一种高效的搜索算法,它可以在O(log n)时间复杂度内找到目标元素。在C#中,可以使用委托条件来实现二进制搜索。

以下是一个使用委托条件二进制搜索C#列表的示例代码:

代码语言:csharp
复制
using System;
using System.Collections.Generic;

class Program
{
    static int BinarySearch<T>(List<T> list, Func<T, bool> predicate)
    {
        int left = 0;
        int right = list.Count - 1;

        while (left <= right)
        {
            int mid = (left + right) / 2;
            T value = list[mid];

            if (predicate(value))
            {
                return mid;
            }
            else if (predicate(value) == false)
            {
                left = mid + 1;
            }
            else
            {
                right = mid - 1;
            }
        }

        return -1;
    }

    static void Main(string[] args)
    {
        List<int> list = new List<int> { 1, 3, 5, 7, 9 };
        int index = BinarySearch(list, x => x > 5);

        if (index != -1)
        {
            Console.WriteLine("Found at index: " + index);
        }
        else
        {
            Console.WriteLine("Not found");
        }
    }
}

在这个示例中,我们使用委托条件来定义二进制搜索的逻辑。我们定义了一个名为BinarySearch的泛型方法,它接受一个列表和一个委托条件作为参数。该方法使用二进制搜索算法在列表中查找满足委托条件的元素,并返回该元素的索引。如果找不到满足条件的元素,则返回-1。

Main方法中,我们创建了一个包含奇数的列表,并使用BinarySearch方法查找大于5的元素。如果找到了该元素,则输出其索引,否则输出“Not found”。

总之,二进制搜索是一种高效的搜索算法,可以在C#中使用委托条件实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券