1.1

1. 欧几里得算法

求两个数的最大公约数
Gcd(m,n)=Gcd(n,mod(m,n))

Gcd(int m,int n)
{
   int t;
   while(n>0)
   {
   t=m%n;
   m=n;
   n=t;
   }
}

2.高效率的取幂运算

求XN
XN=XN/2 *XN/2 (N为偶数)
XN=X(N-1)/2 *X(N-1)/2 *X (N为奇数)

Pow(int x,int n)
{
  if(n==0)
    return 1;
  if(IsEven(n))//若为偶数
    return Pow(x*x,n/2);
  else
    return POw(x*x,n/2)*x;
}

3.二分查找

在已排序的数中查找某个数。

int BinarySearch(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)//如果查找的数小于中间值,抛弃右边值
      high=mid-1;
    else if(A[mid]<x)//如果查找的数大于中间值,抛弃左边值
      low=mid+1;
    else
      return mid;
  }
  return NotFound;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值