您的位置:首页 > 编程语言 > C#

C#版本,二分法查找元素是否在一个目标数组中?

2011-07-19 13:42 671 查看
//二分法查找元素k下标,如果元素存在,则返回其下标,不存在,返回-1
//调用时候,数组必须是已经从小到大已经排序好的数组
public static int BinarySearch(T[] a, int n,T k)
{
int low, high, mid;
low = 0;
high = n - 1;

mid = (low + high) / 2;
while (low <= high)
{

// if (a[mid] < k) low = mid + 1;

if (a[mid].CompareTo(k) < 0) low = mid + 1;
else if (a[mid].CompareTo( k)>0) high = mid - 1;
else break; //找到了
mid = (low + high) / 2;
}
if (low > high) mid = -1; //没有找到
return mid;

} //end BinarySeach
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐