• 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.代码运行结果:

  • 相关阅读:
    09_注解01
    hasattr() getattr() setattr() 函数使用方法
    xpath
    you-get
    Out of range value for column 'phon' at row 1
    五, Authentication和Permissions
    四,ViewSets和Routers
    二,Request和Response
    一,Serializer和ModelSerializer
    三,APIView、GenericAPIView、Mixins总结
  • 原文地址:https://www.cnblogs.com/ChengWenHao/p/QueryFromTwoParts.html
Copyright © 2020-2023  润新知