现在位置: 首页 > 算法 > 文章
2020年01月01日 算法 ⁄ 共 957字 评论关闭
  MBR即主引导记录,全称Main Boot Record,是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。   通常,我们将包含MBR引导代码的扇区称为主引导扇区。因这一扇区中,引导代码占有绝大部分的空间,故而将习惯将该扇区称为MBR扇区(简称MBR)。由于这一扇区承担有不同于磁盘上其他普通存储空间的特殊...
阅读全文
2020年01月01日 架构设计, 算法 ⁄ 共 500字 评论关闭
银行家算法的数据结构   1)可利用资源向量Available。这是一个含有m个元素的数组,其中的而每一个元素代表一类可利用资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态的改变。如果Available[j]=K,则表示系统中现有Rj类资源K个。   2)最大需求矩阵Max。这是一个n*m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max[i,j]=K;则表示进程i需要Rj类资...
阅读全文
2020年01月01日 算法 ⁄ 共 836字 评论关闭
  允许进程动态地申请资源,系统在每次实施资源分配之前,先计算资源分配的安全性,若此次资源分配安全(即资源分配后,系统能按某种顺序来为每个进程分配其所需的资源,直至最大需求,使每个进程都可以顺利地完成),便将资源分配给进程,否则不分配资源,让进程等待。 死锁的概念   死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去...
阅读全文
2020年01月01日 算法 ⁄ 共 841字 评论关闭
  分治算法,根据字面意思解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 分治算法使用策略   分治策略:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然...
阅读全文
2020年01月01日 算法 ⁄ 共 544字 评论关闭
  在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 分治法的基本概念   任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题...
阅读全文
2020年01月01日 算法 ⁄ 共 993字 评论关闭
  raft是工程上使用较为广泛的强一致性、去中心化、高可用的分布式协议。在这里强调了是在工程上,因为在学术理论界,最耀眼的还是大名鼎鼎的Paxos。但Paxos是:少数真正理解的人觉得简单,尚未理解的人觉得很难,大多数人都是一知半解。本人也花了很多时间、看了很多材料也没有真正理解。直到看到raft的论文,两位研究者也提到,他们也花了很长的时间来理解Paxos,他们也觉得很难理解,于是研究出了raft算法。 raft是一个共...
阅读全文
2020年01月01日 算法 ⁄ 共 775字 评论关闭
如何衡量算法复杂度?   内存(Memory)   时间(Time)   指令的数量(NumberofSteps)   特定操作的数量   磁盘访问数量   网络包数量   渐进复杂度(AsymptoticComplexity) 为什么要进行算法分析?   预测算法所需的资源   计算时间(CPU消耗)   内存空间(RAM消耗)   通信时间(带宽消耗)   预测算法的运行时间   在给定输入规模时,所执行的基本操作数量。   或者称为算法复杂度(Algorit...
阅读全文
2020年01月01日 算法 ⁄ 共 753字 评论关闭
  正如我们所知道的,Floyd算法用于求最短路径。Floyd算法可以说是Warshall算法的扩展,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3)。 Floyd算法的基本思想如下:   从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B。所以,我们假设Dis(AB)为节点A到节点B的最短路径的距离,对于每一个节点X,我们检查Dis(AX)+Dis(XB)B,我们只能发现一条路径,就是A->B,路径距离为9...
阅读全文
2020年01月01日 算法 ⁄ 共 771字 评论关闭
  算法思想有很多,业界公认的常用算法思想有8种,分别是枚举、递推、递归、分治、贪心、试探法、动态迭代和模拟。当然8种只是一个大概的划分,是一个“仁者见仁、智者见智”的问题。 算法处理数据   其实这些算法都是用来处理数据的,这些被处理的数据必须按照一定的规则进行组织。当这些数据之间存在一种或多种特定关系时,通常将这些关系称为结构。在C语言数据之间一般存在如下3种基本结构。   线性表中各个数据元素之间...
阅读全文
2019年12月31日 算法 ⁄ 共 725字 评论关闭
  算法这个东西其实在开发中很少用到,特别是web开发中,但是算法也很重要,因为任何的程序,任何的软件,都是由很多的算法和数据结构组成的。但是这不意味着算法对于每个软件设计人员的实际工作都是很重要的。每个项目特点和需求特殊也导致算法运用场景上不同。但是个人觉得算法运用的好的话会给自己在程序设计的时候提供比较好的思路。下面就对一些排序算法小结一下,就当做自己的一个笔记吧。 插入排序算法简介   插入...
阅读全文