算法设计与分析学习笔记与习题1

算法是有限条操作指令的集合,这些指令确定了解决问题的方法与步骤。能够对符合一定规范的输入,在有限时间内获得所要求的输出。

求两个正整数的最大公因子

在这里插入图片描述
算法思想:E(m,n)
第一步:求余数 ==r= m mod n==;
第二步:判断 若 r = 0 算法结束,n即为所求;否则进入第三步。
第三步:赋值 ==m=n,n=r==;返回第一步
解释:由于m,n与余数r之间有关系式:==m=q*n+r (r<n)==
其中q为商,则计算 m与n的最大公约数可以转换成计算 n与r的最大公约数;因为m与n的最大公约数比能整除r;反之,n和r的最大公约数必能整除m。
伪代码:

算法:GCD(m,n)
    /*使用欧几里得算法计算m,n的最大公约数*/
    /*输入:两个正整数m,n*/
    /*输出:m,n的最大公约数*/
begin
    while n!=0 do
    begin
        r=m mod n;
        m=n;
        n=r;
    end;
    return n;
end

写出将十进制正整数转换为二进制正整数的标准算法

算法思路:任何一个正整数都可以用2的幂次方表示,例如,137=2^7^ + 2^3^ + 2^0^,所以将正整数每次%2 就能得到当前位置上的2进制数。
输入:一个正整数n
输出:正整数n相应的二进制数
第一步:用n除以2,余数赋给Ki(i=0,1,2...),商赋给n 
第二步:如果n=0,则到第三步,否则重复第一步 
第三步:将Ki按照i从高到低的顺序输出
伪代码实现:

Algorithm DectoBin(n)
Begin
    i =n;
      j =0;
      while  (i != 0)  do
          i = i/2;
          B[j]=i%2;
          j =j+1;
      end;
      while (j > 0) do
        j =j-1;
        Print B[j];
    end;
end

证明关于下列n个顶点二叉树高度的不等式:⌊logn⌋<=h<=n-1

首先证明不等式的右边:
当二叉树的每层只有一个节点的时达到最大高度n-1,所以二叉树的高度h ≤ n-1;
不等式左边的证明:
对任意一个高度为h的二叉树,节点数最多时为满二叉,而高度为h的满二叉树的节点数为
2^(h+1)^-1,对任意高度为h的二叉树,其节点数一定小与等于2^(h+1)^-1, 即n<=2^(h+1)^-1 -->⌊log⁡n⌋<=⌊log⁡(2^(h+1)^-1)⌋, 而⌊log⁡⁡(2^(h+1)^-1)⌋=h
故⌊log⁡n⌋<=h

全部评论

相关推荐

11-28 16:00
已编辑
武汉理工大学 Java
想干测开的tomca...:这份简历是“短期项目硬堆中大型系统技术”的“技术炫技式造假模板”,槽点密集到能当反面教材: ### 1. 「项目时长」和「技术密度」严重脱节,造假痕迹焊死在简历上 两个项目时长分别是**3个月、2个月**,但堆了Spring AI、Elasticsearch、MinIO、Kafka、ShardingSphere、Docker、Sentinel等近20个中大型项目才用的技术——正常情况下,光把这些中间件的文档看完+环境搭好,3个月都不够,更别说实现“AI多轮对话、分库分表、RBAC权限、大模型调用”这些功能。 说白了:你这不是“做项目”,是把“后端技术栈清单”往项目里硬塞,明摆着“只调用了API,没碰过核心逻辑”。
点赞 评论 收藏
分享
嵌入式的小白:简历都没过,说明简历匹配度不行,这个需要你看看投递的岗位描述,看人家需要什么技术,然后针对性的修改
0offer互助地
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务