代码:
Position BinarySearch(List L, ElementType X) {
//Position BinarySearchFour(List L, ElementType X, Position First, Position Last);
//int length = sizeof(L->Data)/sizeof(L->Data[1]);//结构体中直接有Last指针
int first = 1;
int end = L->Last;//采用last命名不太好,重复
int center = 1;
//循环条件为first<=end,特别注意等号是成立的,如偶数个输入查找最后一个数的情况
while (first <= end) {
center = (first + end) / 2;
if (L->Data[center] == X)
return center;
else if (L->Data[center] > X)
end = center - 1;
else
first = center + 1;
}
return(NotFound);
}
结果: