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。如有错误,恳请指正。
原创粉丝点击