首页 > 其他分享 >3月3日-阅读心得

3月3日-阅读心得

时间:2023-03-03 23:23:46浏览次数:30  
标签:return int Pow unsigned 算法 阅读 余数 心得

看书有点看上瘾了,先把这本书看完再上网课吧。

不过今天白天摆了一天,到晚上才想起来看书,想想就亏。还有关于AI的训练,我经过多方查证和尝试之后,发现确实是硬件问题,我这台电脑连卷积都没办法完成。
匪常滴无奈啊

========================================================================

关于昨天我好奇的那些很厉害的递归函数的使用,今天我在书中见到了一点点它的踪影。
分治:先把问题大致分成两个相等的子问题,递归地对它们求解,接着将两个子问题的解合在一起并再做些少量的附加工作,最后得到整个问题的解。
分治算法的运行时间一般为NlogN,一般来说:如果一个算法用常数时间将问题的大小削减为其的一部分(通常为1/2),那么该算法就是O(NlogN),另一方面,如果使用常数时间只是把问题减少一个常数,那么这种算法就是O(N)的。
二分查找:实例:给定一个整数X和等差为X(X>0)的等差数列A,后者已经预先排序并在内存中,求使得A[i]=X的i,如果X不在数据中,则返回i。相比于从右到左扫描A,可以验证X是否为居中元素,如果X小于居中元素,则扫描A的左边,如果X大于居中元素,则扫描A的右边。
实例2:计算X的N次方

long int
Pow( long int x, unsigned in N )
{
  if( N == 0 )
    return 1;
  if( N == 1 )
    return x;//上面四行都是在处理基准情况(应该是四行吧)
  if(IsEven(N))//如果N为偶数
    return Pow( x * x, N / 2 );//利用递归函数,简单的X的N次自乘变成XN=XN/2*XN/2。
  else//如果N为奇数
    return Pow( x * x, N / 2 ) * x;
}

上述两个例子的一般想法都是从按次数慢慢计算,在上述算法表明,当我们面对这次按次数慢慢的运行的情况时,不妨可以想想能不能用二分的思想来解决问题。
以及在昨天中,我从书中学到了优化算法的方法之一是祛除冗余,在书上对欧几里得算法的解释中,我学到了第二个方法:通过事物的必然性来优化算法。
下面是代码(该算法连续计算余数到余数为0为止,最后的非零余数就是最大公因数。)

unsigned int
Gcd( unsigned int M, unsigned int N )
{
  unsigned int Rem;

  while( N > 0 )
  {
    Rem = M % N; //取得M%N的余数
    M = N; //将上一次的余数赋值给M
    N = Rem; //将余数的值赋值给N,当N<=0时,结束循环(实际上N不存在小于0的情况,因为余数不可能小于0)
  }
  return M;
}

这个算法忽略了余数的值按照常数因子递减的必然性,在两次迭代以后,余数最多是原始值的一半。
算法的检验:
当然,即使设计好了算法我们也不能确保程序会按我们所设计好的运行。
书上提供了一种检验的方法:编程并比较实际运行的时间与通过分析所描述的运行时间是否相匹配。
仔细阅读了一遍,发现这部分内容有点看不懂啊。
。。。。。。。。。。。。。。。。
后面再倒过来看一遍好了。

=========================================================================================================

到此为止第一章和第二章算是看完了,3月3日的学习就到了这里
(内容确实是有点少,主要是我今天太摆了,就放一张生气的图片鞭策一下自己吧,不能接着休息的借口三分钟热度
(浅浅地看了一下后面的内容,书上说抽象数据类型(ADT)是一些操作的合集(这其实就是在编写函数吧))

标签:return,int,Pow,unsigned,算法,阅读,余数,心得
From: https://www.cnblogs.com/apeiriaDolce/p/17176891.html

相关文章

  • 阅读笔记《大型网站技术架构核心原理与案例分析 》
    今天按照老师的要求阅读了《大型网站架构核心原理与案例分析》这本书,对此书所讲解的东西感触颇深。先谈一谈李智慧老师为什么写这本书。当时李老师想写这本书的起......
  • 大型网站架构可修改性阅读笔记
    当今互联网时代,大型网站架构的可修改性是至关重要的,因为网站需要不断地更新和改进以适应不断变化的市场和用户需求。在这种背景下,实现可修改性需要考虑多个因素,如架构设计......
  • 大型数据库技术架构阅读笔记--性能
    常见的性能指标有如下:1、响应时间    简称RT,指的是客户发出请求到得到系统响应的整个过程的时间。也就是用户从客户端发起一个请求开始,到客户端接收到从服务器端......
  • 阅读笔记《大型网站技术架构核心原理与案例分析》《高性能网站建设指南》
    软工三班王骜我们组的主题是性能。直观的说法就是网站的响应速度,它不仅仅是网站打开速度。网站性能涉及用户访问网站的整个流程中。首先用户在浏览器端发出请求,其次在......
  • 大型网站技术架构阅读笔记--性能测试章节
    1.由于网站响应通常很快,很难精确测量一次响应时间,在测试网站响应时间时,可以类比测纸张厚度的方法,取一万次响应的总时间,然后除以一万来得到结果,,同时测试程序本身也会占......
  • 阅读笔记
    可修改性指系统或者软件能够快速的以较高的性价比对系统进行变更的能力,可修改性战术的目标是控制实现、测试和部署变化的时间的成本。就比如说《大型网站技术架构:核心原理......
  • 阅读笔记——《大型网站技术架构:核心原理与技术分析》可用性、可伸缩性、可扩展性
    在制作软件的过程中,引入软甲架构的概念能够很大程度上提高软件质量。今天阅读了李智慧主编的《大型网站技术架构:核心原理与技术分析》部分内容,从软件的高可用性、可伸......
  • 阅读-软件架构可用性
    阅读《大型网站技术架构核心原理与案例分析》--李智慧软件架构可用性陈振辉摘要:网站可用性是大型网站核心架构设计之一,好的架构应该具有好的方法,行业中对于可用性也有评......
  • 阅读笔记
    提高可用性手段:使用较为昂贵的软硬件设备数据和服务的冗余备份及失效转移(保证服务器硬件故障时服务依然可用、数据依然可以被访问并保存)应用层——服务器——数据层这......
  • 阅读笔记《大型网站技术架构核心原理与案例分析》《高性能网站建设指南》
     软工三班曹亚凯在周四的专业课上阅读了两位业界前辈的专业参考书,因为小组要做的针对性研究探讨方面是关于网站性能的,所以针对于网站性能优化,根据其前辈书中的知识做一......