二分查找的递归算法(附源码)_

1 using  System;
 2
 3 namespace  BinarySearch
 4 {
 5    /// <summary>
 6    /// 二分搜索法,Made by AX。
 7    /// </summary>

 8    public class Search
 9    {
10        public static void Main()
11        {
12            int searchKey=8;                //要在数组中查找的数字
13            int[] scores={2,4,6,8,10,12};    //数组
14            int low=0;                        //数组最小索引
15            int high=scores.Length-1;        //数组最大索引
16            int searchResult=StartSearch(scores,searchKey,low,high);
17            Console.WriteLine("要查询的数的索引为:"+searchResult);
18            Console.ReadLine();
19        }

20        public static int StartSearch(int[] arr ,int key,int low,int high)
21        {            
22            if(low>high)
23            {
24                return -1;
25            }

26            else
27            {
28                //四舍五入方法,结果为6.0
29                //double AX=Math.Round(5.5);
30                //第一次执行(0+5)/2=2                
31                int mid=(low+high)/2;
32                if(arr[mid]==key)
33                {
34                    return mid;
35                }

36                else if(key<arr[mid])
37                {
38                    return StartSearch(arr,key,low,mid-1);
39                }

40                else
41                {
42                    return StartSearch(arr,key,mid+1,high);
43                }

44            }

45        }

46    }

47}

你可能感兴趣的:(二分查找)