c# - 在 .NET/C# 上下文中,什么是二分搜索以及如何/为什么使用二分搜索?

标签 c# .net binary-search

我今天第一次在维基百科上阅读有关二分搜索的内容,只是粗略地浏览了一下。它似乎用于在内存稀疏的情况下快速查找集合中的项目。

在 .NET/C# 环境中,我是否需要使用它?您在构建实际的生产软件时使用过它们吗?

如果这个问题听起来有煽动性,我很抱歉,但作为一名学生,我问的是一个真实的问题!

最佳答案

List<T>有一个BinarySearch方法,就像 Array 一样。如果您有一个排序列表并且需要查找一个元素,您将使用它们。因为它们返回一个索引,所以您可以完成使用直接字典无法完成的操作,例如查找小于键的最大元素。

我在现实软件中使用二分搜索的一个地方是进行范围搜索。运费是针对重量范围给出的,因此 0-1 磅可能有一种费率,1-5 磅有一种费率,5-10 磅有一种费率。如果我调用 List<T>.BinarySearch查找 4 磅,它会给我第一个高于 4 磅的指数,我可以使用它来查找 1-5 磅范围。字典只会告诉我没有找到 4 磅。

对于一般排序数据,您通常最好使用 SortedListSortedDictionary

关于c# - 在 .NET/C# 上下文中,什么是二分搜索以及如何/为什么使用二分搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3251873/

相关文章:

algorithm - 在前一个元素和当前元素之间的最大差异为 1 的数组中搜索的有效方法

algorithm - 对未排序的数组进行二进制搜索?

c# - ASP C# 发送文件到客户端

c# - AutoResetEvent 和 ManualResetEvent 之间的混合

.net - 如何使用 ng-Flow 在 ASP.NET 中分块上传文件

c# - EventSource - 无法获取要应用的方法签名更改

.net - 使用 .NET Framework 捕获麦克风音频流

c# - mysql存储过程

c# - 这是暂时改变当前线程文化的好方法吗?

c++ - 二进制代码错误帮助