zoukankan      html  css  js  c++  java
  • 课后作业08 -- 二分查找法 (课后修改)

                int[] arr1 = new int[] { 1, 3, 4, 5, 6, 9, 13, 25, 36, 45, 67 ,79};
                foreach (int i in arr1)
                    Console.Write(i + " ");//遍历数组
                Console.WriteLine(" 
    数组长度为:" +   arr1.Length + "
    请输入要查找的数字:");
                int num;
                try
                {
                    num = Convert.ToInt32(Console.ReadLine());
                }
                catch(Exception ex)
                {
                    Console.WriteLine("输入错误!! 
    错误信息是:" + ex.Message);
                    Console.ReadLine();
                    return;
                }
                if (arr1.Contains(num))//判断数组是否包含要查找的数
                {
                    int a = 0 , b = arr1.Length -1 ,c ;
                    while (a <= b)//条件判断中含有a = b ,可以有效查找两头 防止死循环
                    {
                        c = (a + b) / 2;
                        if (arr1[c] == num)
                        {
                            Console.WriteLine("您要找的数字是数组第" + (c + 1) +"位。");
                                break;
                        }
                        else if (arr1[c] > num)
                            b = c - 1;//已经判断中间位置不等于要查找的数 可以多移一位增加效率
                        else
                            a = c + 1;
                    }
                }
                else
                    Console.WriteLine("您要查找的数字不在数组内!");
                Console.ReadLine();
    
  • 相关阅读:
    Word pair Hu
    [bzoj1601] 灌水
    小木棍
    雇佣计划
    [Luogu1282] 多米诺骨牌
    [Luogu1216] 数字三角形
    [Luogu1734] 最大约数和
    [NOIp2008] 传纸条
    [Luogu1325] 雷达安装
    nginx
  • 原文地址:https://www.cnblogs.com/whytohow/p/4719629.html
Copyright © 2011-2022 走看看