欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

c# 二分查找算法

时间:2021-12-01 10:31:39|栏目:.NET代码|点击:

折半搜索,也称二分查找算法二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。

A 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;

B 如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。

C 如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

时间复杂度折半搜索每次把搜索区域减少一半,时间复杂度为O\left( \log n \right)

(n代表集合中元素的个数)空间复杂度O\left( 1 \right)

复制代码 代码如下:

/// <summary>
/// 二分查找
/// </summary>
/// <param name="arr"></param>
/// <param name="low">开始索引 0</param>
/// <param name="high">结束索引 </param>
/// <param name="key">要查找的对象</param>
/// <returns></returns>
public static int BinarySearch(int[] arr, int low, int high, int key)
{
    int mid = (low + high) / 2;
    if (low > high)
        return -1;
    else
    {
        if (arr[mid] == key)
            return mid;
        else if (arr[mid] > key)
            return BinarySearch(arr, low, mid - 1, key);
        else
            return BinarySearch(arr, mid + 1, high, key);
    }
}

实例:

复制代码 代码如下:

int[] y = new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13 };
int rr = BinarySearch(y, 0, y.Length - 1, 13);
Console.Write(rr);    //12

上一篇:C#实现简单获取及设置Session类

栏    目:.NET代码

下一篇:在 ASP.Net Core 中使用 MiniProfiler的方法

本文标题:c# 二分查找算法

本文地址:http://www.codeinn.net/misctech/185443.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有