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