函数模板实现二分查找

二分查找时间复杂度是logn,实现对排序序列的查找

template <typename T>

T BinarySearch(T a[],int n,T key)
{
int left,right;
int mid;

left = 0;
right = n - 1;

while(left<right)
{
mid = (left + right)/2;
if (key == a[mid])
{
return mid;
}
else if (key > a[mid])
{
left = mid + 1;
}
else
{
right = mid - 1;
}
}

return -1;
}
经验分享 程序员 微信小程序 职场和发展