记录一些算法(以后会不断添加)


//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
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值