二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
递归:
using System;
public class Test
{
public static void Main()
{
int[] y = new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13 };
int rr = BinarySearch(y, 0, y.Length - 1, 2);
Console.Write(rr); //12
}
public static int BinarySearch(int[] arr,int low,int high,int key){
int mid = (low+high)/2;
if(low>high){
return -1;
}
else
{
if(arr[mid]==key){
return mid;
}
else if(arr[mid]>key)
{
return BinarySearch(arr,low,mid-1,key);
}
else
{
return BinarySearch(arr,mid+1,high,key);
}
}
}
}
推荐一个在线编译器http://www.dooccn.com/csharp/