二分尋找的遞迴演算法(附源碼)_
來源:互聯網
上載者:User
1using System;
2
3namespace 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}