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。如有错误,恳请指正。
C#实现查找算法
最新推荐文章于 2022-09-07 20:19:22 发布