二分查算法

二分查找也称折半查找(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/

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