算法 -- C#实现二分查找(Binary Search)

Posted 草根专栏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法 -- C#实现二分查找(Binary Search)相关的知识,希望对你有一定的参考价值。

Binary Search的概念不接受了,直接看C#的实现:

以上就是本文的主要内容了。。。。。。


下面来个单元测试:

算法 -- C#实现二分查找(Binary Search)


单元测试的结果是通过的:

算法 -- C#实现二分查找(Binary Search)



再做个性能测试吧,比较一个Binary Search和List的Find方法的性能:

算法 -- C#实现二分查找(Binary Search)

面分别是Binary Search和List的Find的性能测试方法。

是针对一个随机生成且排好序的int集合(10万笔)进行查找某个元素。

性能测试采用的是xUnit.Performance,详情请看:


这里还采用了一个Fixture类,它可以保证两个测试方法的int集合的数据是一样(共享)的:

算法 -- C#实现二分查找(Binary Search)


还需要在测试类里需要这么写:


性能测试的结果如下:

可以看到Binary Search在这种情况下的效率远远高于List Ext的Find方法。

以上是关于算法 -- C#实现二分查找(Binary Search)的主要内容,如果未能解决你的问题,请参考以下文章

java 如何实现 binary search 二分查找法?

[基础算法]二分查找Binary Search

C++之binary_search二分查找算法

算法模板Binary Search 二分查找

C语言二分查找算法,折半查找算法

二分查找算法(Binary Search)的时间复杂度