zoukankan      html  css  js  c++  java
  • C# -- 二分法查找

    二分法查找:适用于已经排序好的数组

    1.二分法查找(入门案例)

     1         static void Main(string[] args)
     2         {
     3             int[] myNums = { 1, 13, 22, 34, 56, 143, 167, 211, 266, 363, 466, 572, 595, 645, 688, 689, 702, 779, 888,899,922 };
     4 
     5             Console.WriteLine("我的数组是:");
     6             for (int i = 0; i < myNums.Length; i++)
     7             {
     8                 Console.Write("{0} ",myNums[i]);
     9             }
    10             Console.WriteLine();
    11 
    12             //使用二分法从数组查找指定值
    13             //取得查找值在数组中的索引位置
    14             int QueryValueIndex = QueryFromTwoParts(688, myNums, 0, myNums.Length - 1);
    15             Console.WriteLine("--------------------------------------------------------");
    16             Console.WriteLine("查找值688在数组中的索引位置是:{0}",QueryValueIndex);
    17             Console.WriteLine("数组myNums索引位置{0}处的值是:{1}",QueryValueIndex,myNums[QueryValueIndex]);
    18 
    19             Console.ReadKey();
    20         }
    21 
    22 
    23         //该方法返回的是查找值在数组中的索引位置
    24         private static int QueryFromTwoParts(int QueryValue, int[] nums, int leftIndex, int rightIndex)
    25         {
    26             //计算数组中间值的在数组中的索引位置
    27             int midValueIndex = (leftIndex + rightIndex + 1) / 2;
    28 
    29             //取得数组中间索引位置处的值
    30             int midValue = nums[midValueIndex];
    31 
    32             //比较中间值与查找值的大小,确定下一步该怎样继续查询
    33             if (QueryValue ==midValue)
    34             {
    35                 return midValueIndex;
    36             }
    37             else if (QueryValue<midValue)
    38             {
    39                 return QueryFromTwoParts(QueryValue, nums, leftIndex, midValueIndex);
    40             }
    41             else
    42             {
    43                 return QueryFromTwoParts(QueryValue, nums, midValueIndex, rightIndex);
    44             }
    45 
    46         }

    2.代码运行结果:

  • 相关阅读:
    05 库的简单操作
    04 基本的MySQL语句
    03 MySQL安装和基本管理
    02 数据库概述
    01 MySQL入门了解
    Django-组件拾遗
    bootstrap基础讲解
    jQuery练习
    前端基础之Jquery
    15 Django组件-中间件
  • 原文地址:https://www.cnblogs.com/ChengWenHao/p/QueryFromTwoParts.html
Copyright © 2011-2022 走看看