class Program
{
static void Main(string[] args)
{ // 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16, 17, 18,
Console.WriteLine(My2FenFa(new int[19] { 1,2,3,4,5,6,7,8,9,9,11,11,11,11,14,15,119,122,133},119));
Console.ReadLine();
}
private static int My2FenFa(int[] nums, int target)
{
//数组左边界索引值
int left = 0;
//数组的右边界索引值
int right = nums.Length;
//数组的中位值的索引值
int mid = 0;
//在循环中,根据中位值与目标值对比,更新左(右)边界的值,从而缩小检索范围,直到找到目标值。
while(left <= right)
{ //每循环一次,中位值索引也要随着左(右)边界的改变而改变
mid = (left + right) / 2;
if(nums[mid].Equals(target))
{
return mid;
} //中位值在目标值左边时更新左边界索引
else if(nums[mid] < target)
{
left = mid + 1;
} //中位值在目标值右边时更新右边界索引
else if(source[mid] > target)
{
right = mid - 1;
}
}
return -1;
}
}