您的位置:首页 > 其它

让我们重温上大学时候学习的基础算法之折半查找

2012-03-31 14:13 239 查看
//输入排好序的数组和待查询的值,返回在数组中的位置
static int BinarySearch(int[] array, int value)
{
int low = 0;//查询的开始范围
int high = array.Length - 1;//查询的结束范围
int midpoint = 0;//中间点
while (low <= high)
{
midpoint = (low + high) / 2;
//检查是否和数组中的中间值相等
if (value == array[midpoint])
{
return midpoint;
}
else if (value < array[midpoint])
high = midpoint - 1;
else
low = midpoint + 1;

}
//没有找到返回-1
return -1;
}


用在大学时候没学过的语言C#来写基础这般算法

大家看看如果如此调用返回是几,有奖竞猜,呵呵

int[] numbers = new int[10] { 10, 21, 34, 49, 54,78,101,254,354,5454 };
int value = 255;
int he = BinarySearch(numbers, value);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: