//输入排好序的数组和待查询的值,返回在数组中的位置
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);