C#实现查找算法
来源:互联网 发布:车载摄像头模组数据口 编辑:程序博客网 时间:2024/05/03 12:57
public static int BinarySearch<T>(T[] ascArray, T searchElement) where T : IComparable { if (ascArray == null || ascArray.Length == 0) throw new Exception("Input arrary can not be Null or Empty."); int left = 0; int right = ascArray.Length - 1; while (left <= right) { int middle = left + (right - left >> 1); if (ascArray[middle].CompareTo(searchElement) > 0) { right = middle - 1; } else if (ascArray[middle].CompareTo(searchElement) < 0) { left = middle + 1; } else { return middle; } } return -1; }
二分法查找(Binary Search),还有一个有意思的名字叫Divided & Conquer。如有错误,恳请指正。