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
}
using System;2

3
namespace BinarySearch4
{5
/// <summary>6
/// 二分搜索法,Made by AX。7
/// </summary>8
public class Search9
{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
else27
{28
//四舍五入方法,结果为6.029
//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
else41
{42
return StartSearch(arr,key,mid+1,high);43
}44
}45
}46
}47
}


浙公网安备 33010602011771号