Position
BinarySearch(List L
,ElementType X
)
{
if(X
<L
->Data
[1]||X
>L
->Data
[L
->Last
]) return NotFound
;
int left
=1;int right
=L
->Last
;
int mid
;
while(left
!=right
){
mid
=(left
+right
)/2;
if(L
->Data
[mid
]>X
) right
=mid
;
if(X
>L
->Data
[mid
]) left
=mid
+1;
if(X
==L
->Data
[mid
]) break;
}
if(left
==right
){
if(L
->Data
[left
]!=X
) return NotFound
;
else return left
;
}
else return mid
;
}
转载请注明原文地址: https://yun.8miu.com/read-136544.html