首页 > 编程语言 >C#二分查找算法实例分析

C#二分查找算法实例分析

时间:2022-12-18 16:23:04浏览次数:67  
标签:二分 program Console C# int 查找 ints Program

原文链接:https://www.jb51.net/article/65006.htm

internal class Program
{
    static void Main(string[] args)
    {
        Program program = new Program();

        int[] ints = { 1, 2, 3, 4, 5 };
        int i = program.BinarySearch(ints, 3);
        Console.WriteLine(i);
        Console.ReadKey();


    }

    public int[] GetSubArray(int[] arr, int start, int end)
    {
        List<int> ints = new List<int>();
        for (int i = start; i <= end; i++)
        {
            ints.Add(arr[i]);
        }
        return ints.ToArray();
    }

    public int BinarySearch(int[] arr, int x)
    {
        if (arr.Length == 0)
        {
            return -1;
        }
        int mid = arr.Length / 2;
        if (arr[mid] == x)
        {
            return mid;
        }
        if (x < arr[mid])
        {
            return BinarySearch(GetSubArray(arr, 0, mid - 1), x);
        }
        else
        {
            int indexFound = BinarySearch(GetSubArray(arr, mid + 1, arr.Length - 1), x);
            if (indexFound == -1)
            {
                return -1;
            }
            else
            {
                return mid + 1 + BinarySearch(GetSubArray(arr, mid + 1, arr.Length - 1), x);
            }
        }
    }
}

 

标签:二分,program,Console,C#,int,查找,ints,Program
From: https://www.cnblogs.com/zhu4c4/p/16990508.html

相关文章

  • Spring MVC拦截器HandlerInterceptor全解!
    SpringMVC拦截器(HandlerInterceptor)是一个十分重要且常用的功能,是我们学习和使用SpringMVC必须掌握的基础技能之一。HandlerInterceptor和Servlet规范中的Filter类似,都......
  • javaScript随机图片
    <scripttype="text/javascript">//<!CDATA[varpic=[];pic[0]="链接";pic[1]="链接";pic[2]="链接";pic[3]="链接";varr......
  • 在不同电脑间同步pycharm的配置
    备份文件同步法最传统的方法就是把配置文件备份,然后在其它电脑上通过导入的方式来恢复,这种方法在很多软件中都实测可行。具体对应到pycharm中,可以在pycharm菜单栏file-......
  • IfcProperty
    IfcProperty实体定义IfcProperty是可以通过属性集机制与IFC对象关联的所有类型属性的抽象概括。 IFC1.0中的新实体。   Attributeinheritance#AttributeT......
  • C++进阶知识汇总
    知识来源:https://www.imooc.com/learn/1305二进制在计算机中的意义:计算机如何存负整数:原码:符号位变为1反码:除符号位其余取反补码:=反码+1是-7的表示方法,计算机用补码......
  • 惠普CP1025 因转印离合器导致打印不全大片空白的问题
    问题症状自检只打印出一部分,后面大部分都是空白.如果是碳盒缺粉,应该是均匀地浅或者空白,如果是成像鼓的问题,应该是从上到下成条状的不均匀,这样显示一节后空白......
  • 通过docker logs -f 容器号出现错误[ERROR] COLLATION ‘utf8_unicode_ci‘ is not va
    解决办法:将mysql的配置文件从[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]init_connect='SETcollation_connection=utf8_unic......
  • spring对于ioc容器创建和bean的解析
     根据树看了一下源码 头都大了类的继承图    C:\Users\linjunwei\.m2\repository\org\springframework\spring-beans\5.3.8\spring-beans-5.3.8-sources.j......
  • .net core mvc中session的应用
    1、首先新建一个空的web项目,在Program.cs中打开和使用sessionpublicclassProgram{publicstaticvoidMain(string[]args){var......
  • 漏洞复现-hxpctf2020
    hxpCTF2020做kernel利用讲解。主要易受攻击模块是hackme.ko。分析内核模块:Hackme_init()它注册一个名为hackme的设备驱动文件Hackme_read()设备驱动的read操作H......