二分查找(折半查找)
template <typename T>
int BinarySearch(T *list, const T x, const int n)
{
int low, high, mid;
low = 0;
mid = 0;
high = n - 1;
while (low <= high)
{
mid = (low + high) / 2;
if (list[mid] == x)
{
return mid;
}
else if (list[mid] < x)
{
low = mid + 1;
}
else
{
high = mid - 1;
}
}
return -1;
}