//1)二分法计算幂运算X^N
//如果N是偶数,我们有 X^N = X^2/N * X^2/N.如果N是奇数则X^N = X^(N-1)*X
//用递归算法解决如下
long int Pow( long int X, unsigned int N )
{
if( 0 == N)
return 1;
if( N % 2)//如果N是奇数
return Pow( X, N-1) * X;
else
return Pow(X*X, N/2);
}
//2)二分法在有序的数组中查找一个元素,比较容易懂,就不解释了.
//N数组大小
//X要查找的值
//A[]数组
int BinarySearch( const ElementType A[ ], ElementType X, int N )
{
int Low,Mid,High;
Low = 0;High = N -1;
while( Low <= High )
{
Mid = (Low + High)/2;
if(A[Mid] < X )
Low = Mid + 1;
else if(A[Mid] > X )
High = Mid - 1;
else
return Mid;
}
return NotFound;//NotFound 可定义为-1
}