• c# 二分查找法


    1、仅 当 列表 是 有序 的 时候, 二分 查找 才 管用。

    2、一般而言, 对于 包含 n 个 元素 的 列表, 用 二分 查找 最多 需要 log2n 步, 而 简单 查找 最多 需要 n 步。

     class Program
        {
            static void Main(string[] args)
            {
                int[] arr =new int[]{ 1,3,5,7,9,11,28,32,43,57,69,74,82,98,108,231,456 };
                Dichotomy(arr);
                Console.ReadKey();
            }
    
            public static void Dichotomy(int[] arr)
            {
                Console.WriteLine("请输入数字:");
                string itemStr = Console.ReadLine();
                int item = 0;
                try
                {
                    item = Convert.ToInt32(itemStr);
                    int mid = 0;
                    int low = 0;
                    int high = arr.Length - 1;
    
                    //只要范围没有缩小到只包含一个元素
                    while (low <= high)
                    {
    
    
                        mid = (low + high) / 2;//获取中间的元素
                        Console.WriteLine($"low:{low}high:{high}mid:{mid}");
                        int guess = arr[mid];
                        if (guess == item)
                        {
                            Console.WriteLine($"数字{item}在数组的第{mid}位置上");
                            break;
                        }
                        //猜测的数字大了
                        if (guess > item)
                        {
                            high = mid - 1;
                        }
                        else if (guess < item)
                        {
                            low = mid + 1;
                        }
    
                    }
                    if (low > high)
                    {
                        Console.WriteLine($"此数组不包含数字:{ itemStr}");
                    }
                }
                catch (Exception)
                {
    
                    Console.WriteLine("您输入的不是数字,请重新输入");
                    Dichotomy(arr);
                }
               
    
            }
        }
  • 相关阅读:
    Hello World
    函数
    js基础
    html
    npm
    数据库
    前端了解的简要php
    模块
    scrapy爬虫
    php升级代码检查
  • 原文地址:https://www.cnblogs.com/25miao/p/10644400.html
Copyright © 2020-2023  润新知