精华内容
下载资源
问答
  • 2019-04-18 20:11:11

    一个算法应该具有以下五个重要的特征:

    1,有穷性(Finiteness):算法的有穷性是指算法必须能在执行有限个步骤之后终止;

    2,确切性(Definiteness):算法的每一步骤必须有确切的定义;

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

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

    5,可行性(Effectiveness):算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。

    下面的是扩展

    算法要素:
    一,数据对象的运算和操作:计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合,成为该计算机系统的指令系统。一个计算机的基本运算和操作有如下四类:
    1,算术运算:加减乘除等运算
    2,逻辑运算:或、且、非等运算
    3,关系运算:大于、小于、等于、不等于等运算
    4,数据传输:输入、输出、赋值等运算
    二,算法的控制结构:一个算法的功能结构不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。

    更多相关内容
  • Hash算法特点

    千次阅读 2020-04-15 16:22:47
    一个优秀的 hash 算法,将能实现: 正向快速:给定明文和 hash 算法,在有限时间和有限资源内能计算出 hash 值。 逆向困难:给定(若干) hash 值,在有限时间内很难(基本不可能)逆推出明文。 输入敏感:原始输入...

    2.2 Hash算法有什么特点

    一个优秀的 hash 算法,将能实现:

    • 正向快速:给定明文和 hash 算法,在有限时间和有限资源内能计算出 hash 值。
    • 逆向困难:给定(若干) hash 值,在有限时间内很难(基本不可能)逆推出明文。
    • 输入敏感:原始输入信息修改一点信息,产生的 hash 值看起来应该都有很大不同。
    • 冲突避免:很难找到两段内容不同的明文,使得它们的 hash 值一致(发生冲突)。即对于任意两个不同的数据块,其hash值相同的可能性极小;对于一个给定的数据块,找到和它hash值相同的数据块极为困难。

    但在不同的使用场景中,如数据结构和安全领域里,其中对某一些特点会有所侧重。

    2.2.1 Hash在管理数据结构中的应用

    在用到hash进行管理的数据结构中,就对速度比较重视,对抗碰撞不太看中,只要保证hash均匀分布就可以。比如hashmap,hash值(key)存在的目的是加速键值对的查找,key的作用是为了将元素适当地放在各个桶里,对于抗碰撞的要求没有那么高。换句话说,hash出来的key,只要保证value大致均匀的放在不同的桶里就可以了。但整个算法的set性能,直接与hash值产生的速度有关,所以这时候的hash值的产生速度就尤为重要,以JDK中的String.hashCode()方法为例:

    public int hashCode() {
        int h = hash;
        //hash default value : 0
        if (h == 0 && value.length > 0) {
            //value : char storage
            char val[] = value;
            for (int i = 0; i < value.length; i++) {
                h = 31 * h + val[i];
            }
            hash = h;
        }
        return h;
    }
    

    很简洁的一个乘加迭代运算,在不少的hash算法中,使用的是异或+加法进行迭代,速度和前者差不多。

    2.2.2 Hash在在密码学中的应用

    在密码学中,hash算法的作用主要是用于消息摘要和签名,换句话说,它主要用于对整个消息的完整性进行校验。举个例子,我们登陆知乎的时候都需要输入密码,那么知乎如果明文保存这个密码,那么黑客就很容易窃取大家的密码来登陆,特别不安全。那么知乎就想到了一个方法,使用hash算法生成一个密码的签名,知乎后台只保存这个签名值。由于hash算法是不可逆的,那么黑客即便得到这个签名,也丝毫没有用处;而如果你在网站登陆界面上输入你的密码,那么知乎后台就会重新计算一下这个hash值,与网站中储存的原hash值进行比对,如果相同,证明你拥有这个账户的密码,那么就会允许你登陆。银行也是如此,银行是万万不敢保存用户密码的原文的,只会保存密码的hash值而而已。在这些应用场景里,对于抗碰撞和抗篡改能力要求极高,对速度的要求在其次。一个设计良好的hash算法,其抗碰撞能力是很高的。以MD5为例,其输出长度为128位,设计预期碰撞概率为1/2128,这是一个极小极小的数字——而即便是在MD5被王小云教授破解之后,其碰撞概率也非常低。而对于两个相似的字符串,MD5加密结果如下:
      
    MD5("version1") = "966634ebf2fc135707d6753692bf4b1e";
    MD5("version2") = "2e0e95285f08a07dea17e7ee111b21c8"

    可以看到仅仅一个比特位的改变,二者的MD5值就天差地别了.

    ps :
    其实把hash算法当成是一种加密算法,这是不准确的,我们知道加密总是相对于解密而言的,没有解密何谈加密呢,HASH的设计以无法解为目的的。并且如果我们不附加一个随机的salt值,HASH口令是很容易被字典攻击入侵的。

    展开全文
  • 计算机算法必须具备哪5特性?

    千次阅读 2021-05-24 06:59:13
    一个算法应包含有限的操作步骤,而不能是无限的。事实上“有穷性”往往指“在合理的范围之内”。如果让计算机执行一个历时1000年才结束的算法,这虽然是有穷的,但超过了合理的限度,人们不把他视为有效算法。2、...

    1、有穷性。一个算法应包含有限的操作步骤,而不能是无限的。事实上“有穷性”往往指“在合理的范围之内”。如果让计算机执行一个历时1000年才结束的算法,这虽然是有穷的,但超过了合理的限度,人们不把他视为有效算法。

    2、确定性。算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。算法中的每一个步骤应当不致被解释成不同的含义,而应是十分明确的。也就是说,算法的含义应当是唯一的,而不应当产生“歧义性”。

    3、有零个或多个输入性。所谓输入是指在执行算法是需要从外界取得必要的信息。

    4、有一个或多个输出。算法的目的是为了求解,没有输出的算法是没有意义的。

    5、有效性。 算法中的每一个 步骤都应当能有效的执行。并得到确定的结果。

    2f89e679343a2f07c98fb28fc602711e.png

    扩展资料

    计算机算法的产生背景:

    欧几里得算法被人们认为是史上第一个算法。 第一次编写程序是Ada Byron于1842年为巴贝奇分析机编写求解伯努利方程的程序,因此Ada Byron被大多数人认为是世界上第一位程序员。

    因为查尔斯·巴贝奇未能完成他的巴贝奇分析机,这个算法未能在巴贝奇分析机上执行。 因为"well-defined procedure"缺少数学上精确的定义,19世纪和20世纪早期的数学家、逻辑学家在定义算法上出现了困难。

    参考资料来源:百度百科-计算机算法

    展开全文
  • 遗传算法特点

    万次阅读 2018-10-04 08:55:06
    遗传算法是解决搜索问题的种通用算法,对于各种通用...在遗传算法中,上述几特征以种特殊的方式组合在一起:基于染色体群的并行搜索,带有猜测性质的选择操作、交换操作和突变操作。这种特殊的组合方式将遗...

    遗传算法是解决搜索问题的一种通用算法,对于各种通用问题都可以使用。搜索算法的共同特征为:
    ① 首先组成一组候选解
    ② 依据某些适应性条件测算这些候选解的适应度
    ③ 根据适应度保留某些候选解,放弃其他候选解
    ④ 对保留的候选解进行某些操作,生成新的候选解。
    在遗传算法中,上述几个特征以一种特殊的方式组合在一起:基于染色体群的并行搜索,带有猜测性质的选择操作、交换操作和突变操作。这种特殊的组合方式将遗传算法与其它搜索算法区别开来。
    遗传算法
    遗传算法
    遗传算法还具有以下几方面的特点:
    (1)遗传算法从问题解的串集开始搜索,而不是从单个解开始。这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。
    (2)遗传算法同时处理群体中的多个个体,即对搜索空间中的多个解进行评估,减少了陷入局部最优解的风险,同时算法本身易于实现并行化。
    (3)遗传算法基本上不用搜索空间的知识或其它辅助信息,而仅用适应度函数值来评估个体,在此基础上进行遗传操作。适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。这一特点使得遗传算法的应用范围大大扩展。
    (4)遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导他的搜索方向。
    (5)具有自组织、自适应和自学习性。遗传算法利用进化过程获得的信息自行组织搜索时,适应度大的个体具有较高的生存概率,并获得更适应环境的基因结构。
    (6)此外,算法本身也可以采用动态自适应技术,在进化过程中自动调整算法控制参数和编码精度,比如使用模糊自适应法

    展开全文
  • 一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题----“分”2.将最后子问题可以简单的直接求解----“治”3.将所有子问题的解合并起来就是原问题打得解----“合”这三点是分治算法的...
  • 分析假定第一个结点中数据具有最大值,依次与下一个元素比较,若其小于下一个元素,则设其下一个元素为最大值,反复进行比较,直到遍历完该链表。 算法描述 int GetMax(LinkList L){ if(L->next == NULL) ...
  • 差分进化算法(Differential Evolution,DE)由Storn和Price于1995年首次提出。...该算法类基于群体的自适应全局优化算法,属于演化算法种,其具有结构简单、容易实现、收敛快速、鲁棒性强等特点
  • 功能是路由器智能的核心,它是由管理员的配置和系列的路由算法实现的。路由算法可分为distance vector(DV)algorithm和link_state(LS)algorithms两种。 LS算法和DV算法,这两种算法各有特点,分述如下。 1...
  • 智能优化算法:分类、特点和未来

    千次阅读 2021-03-29 20:58:35
    智能优化算法、 全局优化、元启发式算法、差分进化算法、遗传算法、模拟退火算法、蚁群算法、粒子群算法
  • 算法学习笔记】贪心算法

    千次阅读 2021-06-28 18:01:58
    1. 贪心算法特点是: -分阶段逐步构建解决方案。 -在每一次选择中,总是做出当前看来最好的选择 -不考虑已经做出选择,也不在后期修改它们。 -需要定的一个目标或最优解。 优势:高效,易于设计,易于实施 ...
  • 机器学习综述及各算法特点

    千次阅读 2019-05-15 16:07:28
    机器学习有下面几种定义: “机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能”。 “机器学习是对能通过经验自动改进的计算机算法的研究”。 “机器学习...
  • 操作系统处理器调度算法及其特点

    千次阅读 2020-10-10 23:16:58
    在操作系统中存在多种调度算法,其中有的调度算法适用于...从表面上看,它对所有作业都是公平的,但若一个长作业先到达系统,就会使后面许多短作业等待很长时间,因此它不能作为分时系统和实时系统的主要调度策略。...
  • 【智能算法期】蚁群算法原理

    千次阅读 2022-04-06 17:07:52
    蚁群算法的寻优快速性是由通过正反馈式的信息传递和积累来实现的,分布式计算特征可以避免算法的早熟收敛,与此同时,具有贪婪式启发搜索特征的蚁群系统还可以在搜索过程的初期阶段寻找到可以接受的问题解答。...
  • 【超详细】八大排序算法的各项比较以及各自特点

    万次阅读 多人点赞 2021-03-26 23:54:09
    排序是计算机程序设计中一个非常重要的操作,它将一个数据元素(或记录)的任意序列重新排列成一个按关键字有序的序列。在有序的序列中查找元素的效率很高,(例如,折半查找法的平均查找长度为log2(n+1)−1log2(n+1...
  • 常见加密算法特点及适用场景

    千次阅读 2020-02-06 10:18:39
    常见的加密算法主要有三种:对称加密算法、非对称加密算法和数字摘要算法。 特别说明,对于加密算法的无法破解,是指其在空间和时间上不具备实现的条件。如某个加密算法,采用暴击攻击,在现...
  • 图像分割的主要算法

    千次阅读 2018-07-26 20:25:42
    图像分割的主要算法: 1.基于阈值的分割方法 2.基于边缘的分割方法 3.基于区域的分割方法 4.基于聚类分析的图像分割方法 5.基于小波变换的分割方法 6.基于数学形态学的分割方法 7.基于人工神经网络的分割方法...
  • 多种仿生优化算法特点

    万次阅读 2018-08-16 17:55:10
    (1) 蚁群算法 蚁群算法利用信息正反馈机制,在一定程度上可以加快算法的求解...尽管单个蚁群个体容易陷入局部最优,但通过多蚁群之间信息的共享,能帮助蚁群在 解空间中进行探索,从而避免陷入局部最优。 ...
  • PID算法种成熟并且应用十分广泛的控制算法,小到玩具车的控制,大到飞行器的控制,都有它的身影。对于小白来说,对于它的原理却比较的模糊。现在就根据个人的经验,向大家讲解一下它的特点和原理,顺便结合实例...
  • 算法和数据结构》学习路线指引

    万次阅读 多人点赞 2021-07-01 11:16:15
    前 WorldFinal 选手对学习算法的一点总结。五张思维导图解决你的困惑
  • 机器学习各种算法特点归纳

    千次阅读 2017-08-21 15:09:32
    模型特点:超平面 模型类型:判别模型 学习策略:极小化误分类点到超平面的距离 损失函数:误分点到超平面的距离 学习算法:随机梯度下降 2.k邻近法 适用问题:多类分类,回归 模型特点:特征空间,样本点 模型类型...
  • 随机算法

    千次阅读 2018-05-17 08:35:26
    随机算法是一种在接受输入的同时,为了随机选择的目的,还接受一串随机比特流并且在运行过程中使用该比特流的算法(允许算法在执行过程中随机地选择下一个计算步骤)。 随机算法通常有两个优点: 较之那些我们所知...
  • 贪心算法

    千次阅读 2021-01-13 05:59:48
    定义概览贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,...
  • 算法交易的主要类型与策略分析

    千次阅读 2019-07-02 11:06:06
    算法交易起源于上世纪中叶的配对交易 历史上最早使用算法交易的例子可以追溯到1949年。对冲基金之父阿尔弗雷德·琼斯,利用空对多3:7的比例进行配对交易,在1955年到1964年间,综合回报率高达28%。到了上世纪60...
  • 神经网络算法特点

    千次阅读 2019-11-17 18:39:56
    适用于解决一些利用假设和现存理论难以解释,却具备足够多的数据和观察变量的问题。 (2) 神经元具备泛华能力。神经网络可以通过对输入的样本数据的学习训练,获得隐藏在数据内部的规律,并利用学习...
  • 算法的五大特性

    千次阅读 2020-04-10 16:14:23
    算法的五大特性 1、有穷性,是指算法在执行有限的步骤之后,自动结束而不是出现无限循环,并且每一个步骤在可接受的时间内完成。...输入,是指算法具有零个或多个输入。输出,是指算法至少有一个或多个输出。 ...
  • 基于TDOA定位的Chan算法,han 算法是 TDOA 定位方法的一个很赞的 trick。但是很多方法一旦从学术的角度去看,就罩上了奇异的光环。TDOA,the time differnces of arrival,到达时间差。 Chan 算法1是非递归双曲线...
  • AES算法特点简述

    千次阅读 热门讨论 2018-03-20 09:57:02
    AES是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。...AES共有ECB、CBC等多种模式...ECB:是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。...
  • 在研究了现有画有向无环图的主要方法的基础上提出种基于遗传算法的有向无环图画图算法,将一般有向无环图...实验表明此算法具有算法统一、方法简单、容易实现、易于修改,并且具有自适应、自学习和易于并行化的特点
  • 什么是算法算法有哪些特征?

    万次阅读 2019-11-11 07:44:45
    什么是算法算法有哪些特征? 算法定义:为解决一个问题而采取的方法和步骤,称为“算法”。 算法五大特征: ①有穷性 ②确定性 ③有零个或多个输入 ④有一个或多个输出 ⑤有效性 ...
  • 路径规划算法

    万次阅读 多人点赞 2021-11-14 10:20:44
    文章目录前言、传统路径规划算法1.Dijkstra算法2.A*算法3.D*算法4.人工势场法二、基于采样路径规划算法1.PRM算法2.RRT算法三、智能仿生算法1.神经网络算法2.蚁群算法3.遗传算法 前言 随着机器人技术、智能控制...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 322,098
精华内容 128,839
关键字:

一个算法应具有的主要特点