c# 二分查找算法

时间:2023-10-24 04:42:45 

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

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

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

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

时间复杂度折半搜索每次把搜索区域减少一半,时间复杂度为c# 二分查找算法

(n代表集合中元素的个数)空间复杂度c# 二分查找算法


/// <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#,二分查找
0
投稿

猜你喜欢

  • Android读取assets目录下的所有图片并显示的方法

    2023-03-09 22:06:30
  • 安卓(Android)实现选择时间功能

    2023-11-05 08:20:58
  • 基于spring中的aop简单实例讲解

    2023-10-16 21:01:10
  • java实现删除某条信息并刷新当前页操作

    2022-06-26 07:12:12
  • 程序员最喜欢的ThreadLocal使用姿势

    2022-10-22 21:14:55
  • Java——对象初始化顺序使用详解

    2023-11-01 01:08:46
  • SpringBoot和Swagger结合提高API开发效率

    2023-11-25 01:23:16
  • C#通过WIN32 API实现嵌入程序窗体

    2021-08-13 04:53:10
  • Android编程实现禁止系统锁屏与解锁亮屏的方法

    2022-05-21 02:35:39
  • C#装箱和拆箱操作实例分析

    2021-10-25 13:17:36
  • Android用户输入自动提示控件AutoCompleteTextView使用方法

    2022-02-25 14:59:50
  • SpringBoot 如何添加容器启动的初始化逻辑的操作方法

    2021-11-20 12:10:39
  • Jenkins Pipeline 部署 SpringBoot 应用的教程详解

    2022-09-26 14:06:27
  • Android使用GestureOverlayView控件实现手势识别

    2023-03-02 08:46:26
  • Java实现有限状态机的推荐方案分享

    2022-01-07 15:54:27
  • 十种JAVA排序算法实例

    2022-11-11 00:19:54
  • Java实现人机猜拳游戏

    2023-10-16 08:47:56
  • SpringMVC深入讲解文件的上传下载实现

    2022-04-21 09:01:51
  • Android数据库中事务操作方法之银行转账示例

    2023-07-22 07:56:13
  • Java HtmlParse提取标签中的值操作

    2021-10-07 04:43:10
  • asp之家 软件编程 m.aspxhome.com