精华内容
下载资源
问答
  • 算法特性

    2019-05-16 17:16:51
    算法是问题求解过程的精确描述,他为解决特定类型的问题规定了一个运算过程

    算法是问题求解过程的精确描述,他为解决特定类型的问题规定了一个运算过程,具有下列的特性:

    1:有穷性。很容易理解这个特性,算法的目的是为了解决问题而设计的,只有执行有穷个步骤之后解决某个问题,并且每一步都要在有穷的时间内完成。

    2;确定性。算法的每一个步骤必须是有确切定义的,不能有歧义。

    3:可行性。很容易理解这个特性,算法中每个要进行的运算都能在相应的计算装置所理解和实现。并且可通过有穷次运算完成。

    4:输入。一个算法有零个或者多个输入,他们是算法所需的初始量或被加工的对象的表示,这些输入取自特定的对象集合。

    5:输出。一个算法有一个或多个输出,他们是与输出有特定关系的量。

    展开全文
  • 算法特性

    2016-07-30 13:14:22
    算法有5基本特性:输入、输出、有穷性和可行性、输入输出输入和输出比较容易理解,算法具有或多输入。尽管对于绝大多数算法来说,输入参数都是必要的,但对于个别情况,如打印“hello world”这样的代码,...

    算法有5个基本特性:输入、输出、有穷性和可行性

    一、输入输出

    输入和输出比较容易理解,算法具有零个或多个输入。尽管对于绝大多数算法来说,输入参数都是必要的,但对于个别情况,如打印“hello world”这样的代码,不需要任何输入参数,因此算法的输入可以是零个。算法至少有一个或多个输出,算法是一定要有输出的,输出形式可以是打印输出,也可以是返回一个或多个值等。

    二、有穷性

    有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成

    三、确定性

    确定性:算法每一步骤都具有确定的含义,不会出现二义性。

    四、可行性

    可行性:算法的每一步都必须是可行的,也就是说,每一步都能通过执行有限次数完成

    展开全文
  • 算法的五重要特性

    万次阅读 2016-09-07 10:27:37
    一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件; 输出(Output) 一个算法一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的; 确定性...

    输入(Input)

    一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;


    输出(Output)

    一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;


    确定性(Definiteness)

    算法中的每一条指令必须有确切的含义,不能产生多义性:


    可行性(Effectiveness)

    算法中的每一条指令必须是切实可执行的,即原则上可以通过已经实现的基本运算执行有限次来实现(也称之为有效性);


    有穷性(Finiteness)

    算法必须能在有限步后终止;


    展开全文
  • Paxos算法是莱斯利·兰伯特(英语:Leslie Lamport,LaTeX中的“La”)于1990年提出的种基于消息传递且具有高度容错特性的一致性算法。 问题和假设 分布式系统中的节点通信存在两种模型:共享内存(Shared ...

    Paxos算法莱斯利·兰伯特(英语:Leslie Lamport,LaTeX中的“La”)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。

    问题和假设

    分布式系统中的节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing)。

    基于消息传递通信模型的分布式系统,不可避免的会发生以下错误:进程可能会慢、被杀死或者重启,消息可能会延迟、丢失、重复,在基础 Paxos 场景中,先不考虑可能出现消息篡改即拜占庭错误的情况。

    Paxos 算法解决的问题是在一个可能发生上述异常的分布式系统中如何就某个值达成一致,保证不论发生以上任何异常,都不会破坏决议的一致性。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。

    因此从20世纪80年代起对于一致性算法的研究就没有停止过。

    为描述Paxos算法,Lamport虚拟了一个叫做Paxos的希腊城邦,这个岛按照议会民主制的政治模式制订法律,但是没有人愿意将自己的全部时间和精力放在这种事情上。所以无论是议员,议长或者传递纸条的服务员都不能承诺别人需要时一定会出现,也无法承诺批准决议或者传递消息的时间。但是这里假设没有拜占庭将军问题(Byzantine failure,即虽然有可能一个消息被传递了两次,但是绝对不会出现错误的消息);只要等待足够的时间,消息就会被传到。另外,Paxos岛上的议员是不会反对其他议员提出的决议的。

    对应于分布式系统,议员对应于各个节点,制定的法律对应于系统的状态。各个节点需要进入一个一致的状态,例如在独立Cache对称多处理器系统中,各个处理器读内存的某个字节时,必须读到同样的一个值,否则系统就违背了一致性的要求。一致性要求对应于法律条文只能有一个版本。议员和服务员的不确定性对应于节点和消息传递通道的不可靠性。

    算法

    算法的提出与证明

    首先将议员的角色分为 proposers,acceptors,和 learners(允许身兼数职)。

    • proposers 提出提案,提案信息包括提案编号和提议的 value;
    • acceptor 收到提案后可以接受(accept)提案,若提案获得多数派(majority)的 acceptors 的接受,则称该提案被批准(chosen);
    • learners 只能“学习”被批准的提案。

    划分角色后,就可以更精确的定义问题:

    1. 决议(value)只有在被 proposers 提出后才能被批准(未经批准的决议称为“提案(proposal)”);
    2. 在一次 Paxos 算法的执行实例中,只批准(chosen)一个 value;
    3. learners 只能获得被批准(chosen)的 value。
    在 Leslie Lamport 之后发表的paper中将 majority 替换为更通用的 quorum 概念,但在描述classic paxos的论文  Paxos made simple 中使用的还是majority的概念。
    

    另外还需要保证 progress。这一点以后再讨论。

    作者通过不断加强上述3个约束(主要是第二个)获得了 Paxos 算法。

    批准 value 的过程中,首先 proposers 将 value 发送给 acceptors,之后 acceptors 对 value 进行接受(accept)。为了满足只批准一个 value 的约束,要求经“多数派(majority)”接受的 value 成为正式的决议(称为“批准”决议)。这是因为无论是按照人数还是按照权重划分,两组“多数派”至少有一个公共的 acceptor,如果每个 acceptor 只能接受一个 value,约束2就能保证。

    于是产生了一个显而易见的新约束:

    P1:一个 acceptor 必须接受(accept)第一次收到的提案。
    

    注意 P1 是不完备的。如果恰好一半 acceptor 接受的提案具有 value A,另一半接受的提案具有 value B,那么就无法形成多数派,无法批准任何一个 value。

    约束2并不要求只批准一个提案,暗示可能存在多个提案。只要提案的 value 是一样的,批准多个提案不违背约束2。于是可以产生约束 P2:

    P2:一旦一个具有 value v 的提案被批准(chosen),那么之后批准(chosen)的提案必须具有 value v。
    

    注:通过某种方法可以为每个提案分配一个编号,在提案之间建立一个全序关系,所谓“之后”都是指所有编号更大的提案。

    如果 P1 和 P2 都能够保证,那么约束2就能够保证。

    批准一个 value 意味着多个 acceptor 接受(accept)了该 value。因此,可以对 P2 进行加强:

    P2a:一旦一个具有 value v 的提案被批准(chosen),那么之后任何 acceptor 再次接受(accept)的提案必须具有 value v。
    

    由于通信是异步的,P2a 和 P1 会发生冲突。如果一个 value 被批准后,一个 proposer 和一个 acceptor 从休眠中苏醒,前者提出一个具有新的 value 的提案。根据 P1,后者应当接受,根据 P2a,则不应当接受,这种场景下 P2a 和 P1 有矛盾。于是需要换个思路,转而对 proposer 的行为进行约束:

    P2b:一旦一个具有 value v 的提案被批准(chosen),那么以后任何 proposer 提出的提案必须具有 value v。
    

    由于 acceptor 能接受的提案都必须由 proposer 提出,所以 P2b 蕴涵了 P2a,是一个更强的约束。

    但是根据 P2b 难以提出实现手段。因此需要进一步加强 P2b。

    假设一个编号为 m 的 value v 已经获得批准(chosen),来看看在什么情况下对任何编号为 n(n>m)的提案都含有 value v。因为 m 已经获得批准(chosen),显然存在一个 acceptors 的多数派 C,他们都接受(accept)了v。考虑到任何多数派都和 C 具有至少一个公共成员,可以找到一个蕴涵 P2b 的约束 P2c:

    P2c:如果一个编号为 n 的提案具有 value v,那么存在一个多数派,要么他们中所有人都没有接受(accept)编号小于 n 
    的任何提案,要么他们已经接受(accept)的所有编号小于 n 的提案中编号最大的那个提案具有 value v。
    

    可以用数学归纳法证明 P2c 蕴涵 P2b:

    假设具有value v的提案m获得批准,当n=m+1时,采用反证法,假如提案n不具有value v,而是具有value w,根据P2c,则存在一个多数派S1,要么他们中没有人接受过编号小于n的任何提案,要么他们已经接受的所有编号小于n的提案中编号最大的那个提案是value w。由于S1和通过提案m时的多数派C之间至少有一个公共的acceptor,所以以上两个条件都不成立,导出矛盾从而推翻假设,证明了提案n必须具有value v;

    若(m+1)..(N-1)所有提案都具有value v,采用反证法,假如新提案N不具有value v,而是具有value w',根据P2c,则存在一个多数派S2,要么他们没有接受过m..(N-1)中的任何提案,要么他们已经接受的所有编号小于N的提案中编号最大的那个提案是value w'。由于S2和通过m的多数派C之间至少有一个公共的acceptor,所以至少有一个acceptor曾经接受了m,从而也可以推出S2中已接受的所有编号小于n的提案中编号最大的那个提案的编号范围在m..(N-1)之间,而根据初始假设,m..(N-1)之间的所有提案都具有value v,所以S2中已接受的所有编号小于n的提案中编号最大的那个提案肯定具有value v,导出矛盾从而推翻新提案n不具有value v的假设。根据数学归纳法,我们证明了若满足P2c,则P2b一定满足。

    P2c是可以通过消息传递模型实现的。另外,引入了P2c后,也解决了前文提到的P1不完备的问题。

    算法的内容

    要满足P2c的约束,proposer提出一个提案前,首先要和足以形成多数派的acceptors进行通信,获得他们进行的最近一次接受(accept)的提案(prepare过程),之后根据回收的信息决定这次提案的value,形成提案开始投票。当获得多数acceptors接受(accept)后,提案获得批准(chosen),由acceptor将这个消息告知learner。这个简略的过程经过进一步细化后就形成了Paxos算法。

    在一个paxos实例中,每个提案需要有不同的编号,且编号间要存在全序关系。可以用多种方法实现这一点,例如将序数和proposer的名字拼接起来。如何做到这一点不在Paxos算法讨论的范围之内。

    如果一个没有chosen过任何proposer提案的acceptor在prepare过程中回答了一个proposer针对提案n的问题,但是在开始对n进行投票前,又接受(accept)了编号小于n的另一个提案(例如n-1),如果n-1和n具有不同的value,这个投票就会违背P2c。因此在prepare过程中,acceptor进行的回答同时也应包含承诺:不会再接受(accept)编号小于n的提案。这是对P1的加强:

    P1a:当且仅当acceptor没有回应过编号大于n的prepare请求时,acceptor接受(accept)编号为n的提案。
    

    现在已经可以提出完整的算法了。

    决议的提出与批准

    通过一个决议分为两个阶段:

    1. prepare阶段:
      1. proposer选择一个提案编号n并将prepare请求发送给acceptors中的一个多数派;
      2. acceptor收到prepare消息后,如果提案的编号大于它已经回复的所有prepare消息(回复消息表示接受accept),则acceptor将自己上次接受的提案回复给proposer,并承诺不再回复小于n的提案;
    2. 批准阶段:
      1. 当一个proposer收到了多数acceptors对prepare的回复后,就进入批准阶段。它要向回复prepare请求的acceptors发送accept请求,包括编号n和根据P2c决定的value(如果根据P2c没有已经接受的value,那么它可以自由决定value)。
      2. 在不违背自己向其他proposer的承诺的前提下,acceptor收到accept请求后即批准这个请求。

    这个过程在任何时候中断都可以保证正确性。例如如果一个proposer发现已经有其他proposers提出了编号更高的提案,则有必要中断这个过程。因此为了优化,在上述prepare过程中,如果一个acceptor发现存在一个更高编号的提案,则需要通知proposer,提醒其中断这次提案。

    实例

    用实际的例子来更清晰地描述上述过程:

    有A1, A2, A3, A4, A5 5位议员,就税率问题进行决议。议员A1决定将税率定为10%,因此它向所有人发出一个草案。这个草案的内容是:

    现有的税率是什么?如果没有决定,则建议将其定为10%.时间:本届议会第3年3月15日;提案者:A1
    

    在最简单的情况下,没有人与其竞争;信息能及时顺利地传达到其它议员处。

    于是, A2-A5回应:

    我已收到你的提案,等待最终批准
    

    而A1在收到2份回复后就发布最终决议:

    税率已定为10%,新的提案不得再讨论本问题。
    

    这实际上退化为二阶段提交协议。

    现在我们假设在A1提出提案的同时, A5决定将税率定为20%:

    现有的税率是什么?如果没有决定,则建议将其定为20%.时间:本届议会第3年3月15日;提案者:A5
    

    草案要通过侍从送到其它议员的案头. A1的草案将由4位侍从送到A2-A5那里。现在,负责A2和A3的侍从将草案顺利送达,负责A4和A5的侍从则不上班. A5的草案则顺利的送至A4和A3手中。

    现在, A1, A2, A3收到了A1的提案; A4, A3, A5收到了A5的提案。按照协议, A1, A2, A4, A5将接受他们收到的提案,侍从将拿着

    我已收到你的提案,等待最终批准
    

    的回复回到提案者那里。

    而A3的行为将决定批准哪一个。

    https://zh.wikipedia.org/zh-cn/Paxos%E7%AE%97%E6%B3%95#

     

    Paxos在原作者的《Paxos Made Simple》中内容是比较精简的:

    Phase 1

    (a) A proposer selects a proposal number n and sends a prepare request with number n to a majority of acceptors.

    (b) If an acceptor receives a prepare request with number n greater than that of any prepare request to which it has already responded, then it responds to the request with a promise not to accept any more proposals numbered less than n and with the highest-numbered pro-posal (if any) that it has accepted.

    Phase 2

    (a) If the proposer receives a response to its prepare requests (numbered n) from a majority of acceptors, then it sends an accept request to each of those acceptors for a proposal numbered n with a value v , where v is the value of the highest-numbered proposal among the responses, or is any value if the responses reported no proposals.

    (b) If an acceptor receives an accept request for a proposal numbered n, it accepts the proposal unless it has already responded to a prepare request having a number greater than n.

    借用paxos图解文中的流程图可概括为:

    实例及详解

    Paxos中有三类角色ProposerAcceptorLearner,主要交互过程在ProposerAcceptor之间。

    ProposerAcceptor之间的交互主要有4类消息通信,如下图:

    这4类消息对应于paxos算法的两个阶段4个过程:

    • phase 1
      • a) proposer向网络内超过半数的acceptor发送prepare消息
      • b) acceptor正常情况下回复promise消息
    • phase 2
      • a) 在有足够多acceptor回复promise消息时,proposer发送accept消息
      • b) 正常情况下acceptor回复accepted消息

    因为在整个过程中可能有其他proposer针对同一件事情发出以上请求,所以在每个过程中都会有些特殊情况处理,这也是为了达成一致性所做的事情。如果在整个过程中没有其他proposer来竞争,那么这个操作的结果就是确定无异议的。但是如果有其他proposer的话,情况就不一样了。

    paxos中文wiki上的例子为例。简单来说该例子以若干个议员提议税收,确定最终通过的法案税收比例。

    以下图中基本只画出proposer与一个acceptor的交互。时间标志T2总是在T1后面。propose number简称N。

    情况之一如下图:

    A3在T1发出accepted给A1,然后在T2收到A5的prepare,在T3的时候A1才通知A5最终结果(税率10%)。这里会有两种情况:

    • A5发来的N5小于A1发出去的N1,那么A3直接拒绝(reject)A5
    • A5发来的N5大于A1发出去的N1,那么A3回复promise,但带上A1的(N1, 10%)

    这里可以与paxos流程图对应起来,更好理解。acceptor会记录(MaxN, AcceptN, AcceptV)

    A5在收到promise后,后续的流程可以顺利进行。但是发出accept时,因为收到了(AcceptN, AcceptV),所以会取最大的AcceptN对应的AcceptV,例子中也就是A1的10%作为AcceptV。如果在收到promise时没有发现有其他已记录的AcceptV,则其值可以由自己决定。

    针对以上A1和A5冲突的情况,最终A1和A5都会广播接受的值为10%。

    其实4个过程中对于acceptor而言,在回复promise和accepted时由于都可能因为其他proposer的介入而导致特殊处理。所以基本上看在这两个时间点收到其他proposer的请求时就可以了解整个算法了。例如在回复promise时则可能因为proposer发来的N不够大而reject:

    如果在发accepted消息时,对其他更大N的proposer发出过promise,那么也会reject该proposer发出的accept,如图:

    这个对应于Phase 2 b):

    it accepts the proposal unless it has already responded to a prepare request having a number greater than n.

    总结

    Leslie Lamport没有用数学描述Paxos,但是他用英文阐述得很清晰。将Paxos的两个Phase的内容理解清楚,整个算法过程还是不复杂的。

    至于Paxos中一直提到的一个全局唯一且递增的proposer number,其如何实现,引用如下:

    如何产生唯一的编号呢?在《Paxos made simple》中提到的是让所有的Proposer都从不相交的数据集合中进行选择,例如系统有5个Proposer,则可为每一个Proposer分配一个标识j(0~4),则每一个proposer每次提出决议的编号可以为5*i + j(i可以用来表示提出议案的次数)

    展开全文
  • 算法的定义通常,定义算法为"为解决某一特定任务而规定的一个指令序列"。算法的5个基本特性① 有输入。一个算法必须有0个或多个输入。它们是算法开始运算前给予算法的量。这些输入取自于特定的对象的集合。它们可以...
  • C语言算法特性

    千次阅读 2014-03-22 18:42:04
    有穷性:一个算法应包含有限的操作步骤而不能是无限的。 确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的。 有零个或多个输入。 有一个或多个输出。 有效性:算法中每一个步骤应当能有效...
  • 算法的五大特性

    万次阅读 2018-08-14 10:27:07
    输入: 算法具有0个或多个输入 输出: 算法至少有1个或多个输出 有穷性: 算法在有限的步骤之后会自动结束而不会无限循环,并且每- 一个步骤可以在可接受的时间内完成 确定性:算法中的每一步都有确定的含义,不会...
  • 算法概念与五大特性

    千次阅读 2019-06-27 22:41:58
    算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址...
  • 扩展AC算法的正则特性

    千次阅读 2010-01-26 18:11:00
    可以在AC算法上扩展的正则特性包括:“.*”,“.”,“^”,“$”等。AC算法的查找流程: typedef struct _acsm_pattern { unsigned char *patstr; //pattern 字符串 unsigned int iid; //pattern id号} ACSM_...
  • HASH算法 概念:一般翻译做“散列”,就是把任意长度的输入通过散列函数变化成固定长度的输出,该输出就是散列值。 散列的空间通常远远小于输入的空间,不同的输入会散列城相同的输出(散列冲突)。 优秀hash特点: ...
  • 算法的五大特性

    万次阅读 2017-09-28 09:35:13
    确定性:算法的每一个步骤都具有确定的含义,不会出现二义性  5.可行性:算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限的次数完成 1.输入:在算法中可以有零个或者多个输
  • 算法的概念及五大特性

    万次阅读 2018-05-01 20:57:55
    算法的概念算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或...
  • 数据结构-算法特性

    千次阅读 2013-06-18 22:30:25
    输出:算法至少有一个或多个输出,输出形式可以是打印输出,也可以是返回值 2、有穷性 有穷性:算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每个步骤在可接受的时间内完成。 3、确定性 确定性...
  • 一个成年男人在算法中都是好色之徒

    万次阅读 多人点赞 2021-01-29 18:44:33
    一个软件,展示给一个中年男人的内容,和一个年轻姑娘的内容,有多大区别? 最近,陆玖财经身边很多男性朋友发现了一件非常有意思的事情,他们被算法集体判定为了“有特殊需求”的用户,比如他们用手机打开...
  • 本节将介绍特性选择的概念,特性选择的三常用算法:线性相关算法,相关因子SRCF算法,以及最小描述长度MDL算法。 1.1特性选择概念 我们把被预测的那个属性称为目标变量(Target Variable),把用来预测目标变量值的...
  • 其实这些看似神秘的美颜效果,除了依赖于手机像素之外,更重要的是攻城狮们对于美颜算法的构造。除了这些手机供应商,各大拍照软件比如B612,faceu也必然会有美颜效果,紧随其后的是各大直播平台,没有美颜效果,...
  • 创新一直是一个令人纠结的话题,研究生毕业设计多数需要算法的创新,而博士生毕业... 通常,我们使用一个算法,这里举个简单的粒子,PSO粒子群优化算法,我们通过仿真,会得到该算法的收敛速度,仿真精度等一些参数...
  • 算法-动态规划 Dynamic Programming--从菜鸟到老鸟

    万次阅读 多人点赞 2017-07-15 22:58:29
    前言最近在牛客网上做了几套公司的真题,发现有关动态规划(Dynamic Programming)算法的题目很多。相对于我来说,算法里面遇到的问题里面...是帮助自己总结知识点,二是也能够帮助他人更好的理解这个算法。后面的参
  • 算法的定义

    千次阅读 2019-01-22 17:55:20
    文章目录一、算法的定义:二、基本特性:三、算法设计的要求:四、算法效率的度量方法:五、算法的时间复杂度六、算法的空间复杂度...输入:算法具有零个或多个输入   输出:算法至少有一个或多个...
  • 一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题—-“分”2.将最后子问题可以简单的直接求解—-“治”3.将所有子问题的解合并起来就是原问题打得解—-“合”这三点是分治算法的...
  • 一个方向——进化算法

    千次阅读 2018-03-28 10:27:47
    也许你在深度学习所有的激动人心的时刻并没有听到过神经进化,但它只是潜行于表面之下,作为一个小的热情的研究社区的课题存在了几十年。现在它正伴随着大众对于它的潜力的了解而开始获得更多的关注。简单来说,神经...
  • 10主流算法简介

    千次阅读 2014-06-04 15:39:50
    简而言之,任何定义明确的计算步骤都可称为算法,接受一个或一组值为输入,输出一个或一组值。(来源:homas H. Cormen, Chales E. Leiserson 《算法导论第3版》) 可以这样理解,算法是用来解决特定问题的一系列步骤...
  • Paxos算法和Raft算法

    千次阅读 2020-09-30 15:31:10
    Paxos算法是莱斯利·兰伯特(英语:Leslie Lamport,LaTeX中的“La”)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。用于解决在多个节点间确定一个值。 例如这样的场景: 节点A、B、C是如何...
  • 此外,一个算法具有下列5个重要特性: 1) 有穷性 一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成。 2) 确定性 算法中每一条指令必须有确切的含义,读者...
  • 元启发式算法:蝙蝠算法BA

    千次阅读 多人点赞 2019-06-18 14:51:27
    算法 1. 定义 2. 步骤 3. 特点 二、蝙蝠 1.描述 2.先进技能-声纳 1) 回声定位-Acoustics of Echolocation 2) 行为参数化分析 3. 技能属性 三、 蝙蝠算法 1.算法模型建立之规则理想化简化 2....
  • 算法设计分析题库

    千次阅读 多人点赞 2020-07-03 23:27:58
    1. 下面(C)不是算法所必须具备特性。 (A)确切性 (B)有穷性 (C)高效性 (D)可行性 2. 算法与程序的区别是(B )。 **A.**输出 **B.**有穷性 **C.**输入 **D.**确定性 3. 解决问题的基本步骤是(D...
  • 数据结构分别为逻辑结构、(存储)物理结构和数据的运算三部分。 为什么要学数据结构? 首先,因为数据结构作为计算机专业的专业基础课程,是计算机考研的必考科目之,如果打算报考计算机专业的研究生,你...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 307,304
精华内容 122,921
关键字:

一个算法应该具有的特性