下午考试休息完睡过头了,晕晕的赶紧打开来做。
题目类型:判断题,编程题2道,附加编程题一道15分,设计题一道
判断题为一段二分查找的代码,让找出错误并修改优化,目标数组有序;根据题意利用二分查找到目标值target,若目标元素有重复的返回最后一个和目标元素相同值的索引
int binSearch(const int *Array, int start, int end, int key)
{
int left, right;
int mid;
left = start;
right = end;
while (left <= right)
{
mid = (left + right) / 2;
if (key == Array[mid])
{
while (Array[mid] == Array[mid + 1])
mid++;
return mid;
}
else if (key < Array[mid])
right = mid - 1;
else if (key > Array[mid])
left = mid + 1;
}
return -1;
}
编程题第二个