精华内容
下载资源
问答
  • 大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。算法可以用自然语言描述算法可以有三种不同的描述:自然语言,程序框图,...如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会...

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。

    算法可以用自然语言描述。算法可以有三种不同的描述:自然语言,程序框图,程序语言。算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

    也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

    形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,并在其后尝试定义有效计算性或者有效方法中成形。这些尝试包括库尔特·哥德尔、Jacques Herbrand和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的递归函数,阿隆佐·邱奇于1936年提出的λ演算,1936年Emil Leon Post的Formulation 1和艾伦·图灵1937年提出的图灵机。即使在当前,依然常有直觉想法难以定义为形式化算法的情况。

    展开全文
  • 算法描述

    千次阅读 2019-09-22 17:40:02
    (2)描述算法的工具:算法可用自然语言、框图或高级程序设计语言进行描述。自然语言简单但易产生二义性;框图直观但不擅长表达数据的组织结构;而高级程序设计语言则较为准确、严谨,但因需考虑细节问题而显得相对...

    1.算法、语言、程序的关系

    首先分析数据结构中算法、语言和程序的关系。

    (1)算法:描述数据对象之间的关系(包括数据逻辑关系、存储关系描述)。

    (2)描述算法的工具:算法可用自然语言、框图或高级程序设计语言进行描述。自然语言简单但易产生二义性;框图直观但不擅长表达数据的组织结构;而高级程序设计语言则较为准确、严谨,但因需考虑细节问题而显得相对繁琐。

    (3)程序是算法在计算机中的实现(与所用计算机及所用语言有关)。程序设计的实质是对实际问题选择一种好的数据结构,加之设计一个好的算法,而好的算法在很大程度上取决于描述实际问题的数据结构。

    2.设计实现算法过程的步骤

    (1)找出与求解有关的数据元素之间的关系(建立结构关系)

    (2)确定在某一数据对象上所施加的运算。

    (3)考虑数据元素的存储表示。

    (4)选择描述算法的语言。

    (5)设计实现求解的算法,并用程序语言加以描述。

    3.描述算法的语言选择

    高级语言描述算法具有严格、准确的优点,但用于描述算法,也有语言细节过多的弱点,为此可采用类语言形式。所谓类语言,是指接近于高级语言而又不是严格的高级语言,它具有高级语言的一般语句,撇掉语言中的细节,以便把注意力集中在算法处理步骤本身的描述上。

    传统的描述语言是采用Pascal语言,由于该语言语法规范严谨,非常适合于数据结构。在Windows环境下,又出现了一系列功能强大且面向对象的程序开发工具,如visual C++、Borland C++、Visual Basic等。近年来在计算机科学研究、系统开发、教学以及应用开发中,C语言的使用范围越来越广,C语言成为许多学校计算机专业与非计算机专业必修的高级程序设计语言。C语言类型丰富,执行效率高。

     

    展开全文
  • 试从日常生活中找3例子,描述它们的算法 算法:简而言之就是求解问题的步骤,对特定问题求解步骤的描述。 比如生活中的例子: 考大学 首先填报志愿表、交报名费、拿到准考证、按时参加考试、收到录取通知书...

    什么是算法?试从日常生活中找3个例子,描述它们的算法

    算法:简而言之就是求解问题的步骤,对特定问题求解步骤的一种描述。

    比如生活中的例子:

    1. 考大学

      首先填报志愿表、交报名费、拿到准考证、按时参加考试、收到录取通知书、按照日期到指定学校报到。

    2. 去北京听演唱会

      首先在网上购票、然后按时坐车到北京,坐车到演唱会会场。

    3. 把大象放进冰箱

      先打开冰箱门,然后将大象放进冰箱,关冰箱。

    展开全文
  • 流程图描述算法

    万次阅读 多人点赞 2018-07-18 08:41:11
    流程图就是描述算法的图形化描述流程图可以清晰地描述算法的思路和过程。通过本篇的学习,你将了解到如何流程图来描述算法。】   流程图是算法的图形化描述。俗话说:一张图胜过千言万语,流程图...

    课程导言

    【前面了解了程序和算法的关系,知道了算法是解决问题的具体方法和步骤,也学会了用文字去描述算法。哪还有没有其它描述算法的方式呢?毕竟文字看起来比较费劲。流程图就是一种描述算法的图形化描述,用流程图可以清晰地描述出算法的思路和过程。通过本篇的学习,你将了解到如何用流程图来描述算法。】

     

    流程图是算法的图形化描述。俗话说:一张图胜过千言万语,用流程图可以清晰地描述出算法的思路和过程。

    1、从生活中认识流程图

    说到流程图,同学们可能会感到比较陌生和不理解,其实在我们生活中,经常会看到流程图,也会读懂流程图,并能按照流程图的要求去执行流程图中的各个步骤。例如,我们去图书馆借书就要遵循图书馆制定的流程,当初次使用车站自动售票机购票时,就要仔细看自动购票流程图。看流程图的目的,就是让我们能够明确每一个步骤,而不会出现差错。

                                                 

    0033.png

    图1 借书与自动售票流程图

    现在家庭中一般都有电冰箱、洗衣机等家用电器,家用电器包装箱里面都会附带使用说明书,使用说明书包含了产品的使用方法、注意事项以及一般故障排除流程等内容,当家用电器发生故障时,可以先根据使用说明书的故障排除流程进行故障检查,多半故障原因是因使用不当造成的。下图是某一洗衣机不启动的故障原因排除流程图:

    000999.jpg

     

    图2 洗衣机不启动故障排除流程图

    流程图明确给出了排除因使用不当原因而造成洗衣机不启动故障的排查方法和流程,可以参照流程图给出的步骤,逐步排查洗衣机不能启动的原因。

    按照流程图给出的步骤进行排查:

    第一步需要检查电源是否接通,如果电源有问题,则解决电源问题后,故障排除。如果电源没有问题,则进入第二个步骤。

    第二步需要检查洗衣机门是否关严,如果洗衣机门没有关严,则关严洗衣机门,故障排除。如果洗衣机门已关严,则进入第三个步骤。

    第三步需要检查洗衣机进水部分,查看水龙头是否打开,没有水压,洗衣机也不能启动,如果水龙头没有打开,则打开水龙头,故障排除。如果水龙头已打开且有水压,则进入第四个步骤。

    第四步需要检查是否按下了启动键并有蜂鸣声,如果没有按下启动键,则按下启动键,故障排除。如果已按下启动键且有蜂鸣声,则需要给售后服务打电话报修。

    2、认识流程图的符号

    前面看了洗衣机故障排除流程图,同学们一定很奇怪,流程图的椭圆框、菱形框、平行四边形、长方形以及带线的箭头都表示什么意义?画流程图是不是可以用其它形状画呢?

    其实,流程图是可以允许用其它图形符号画的,只要自己能看明白,能记住流程就行。问题是,如果你希望其他人也能看懂你的流程图,可能就有点麻烦了,你需要给他们解释你流程图中采用的每个图形所表示的含义是什么,当需要给多个人解释时,这时你一定在想,如果这些图形表示的含义他们都知道该多好,就不用我一个个去讲,去沟通了。

    因此,规范的流程图可以帮助人们对流程的统一认识,便于沟通和讨论,有助于工作效率的提高。它使用一组预定义的符号来说明如何执行特定任务,这些预先定义的符号已经标准化,从而让全世界的开发人员都可以采用这些符号而不会引起混淆。表1-1对流程图中使用的符号进行了汇总。

    blob.png

    3、如何绘制流程图?

    先请同学们思考一个计算长方形面积的问题,并给出算法,用文字描述出来。

    问题的解决可分为下面几个步骤:

    (1)设置num1和num2两个变量,接收用户输入的长度和宽度,并存储到num1和num2两个变量;

    (2)判断num1和num2是否大于0,如果大于0,继续下一个步骤,否则提示用户长度和宽度输入错误,算法结束;

    (3)计算num1和num2的乘积,并将乘积结果存储到result变量;

    (4)显示result变量的值到屏幕。

    流程图可以采用多个工具软件进行绘制,下面所列是常用的绘制流程图的工具软件,建议使用Microsoft Visio软件绘制,本课程流程图采用Microsoft Visio 2013软件绘制,流程图见图2-3。

    (1)Microsoft Visio 2010或更高版本

    (2)在线流程图绘制工具processon.com

    (3)PPT、Word等软件

       blob.png                                          

    图3 计算长方形面积算法流程

    使用Microsoft Visio 2013绘制流程图步骤如下:

    (1)Visio 2013是一款比较强大的画图工具,不仅用于软件、办公室用图表,还可以绘制工程图表,启动Visio2013后,Visio会展现各种特色的图表,双击图表,就进入绘制页面了。如图4所示。

    blob.png

    图4  Visio2013可绘制的图表类型

    (2)选择类别,Visio进入类别页面,找到流程图类别,用鼠标单击流程图,进入流程图选择页面。如图5所示。

    blob.png

    图5 Visio2013类别选择页

    (3)在流程图新建页面,选择基本流程图,用鼠标单击基本流程图,在弹出的创建对话框中,单击创建按钮,进入绘图页面。如图6所示。

    blob.png

    图6 创建基本流程图

    (4)在绘图页面中,左侧的是图形符号窗口,可以在这里选择不同的图形符号拖拽到绘图区域,右侧用灰色线条框住的区域是绘图区域,如图7所示。

    blob.png

    图7 流程图绘图页面

    (5)绘制流程图,先从开始符号绘制,在左侧符号区域选择开始/结束图形符号,按下鼠标左键,用鼠标拖拽到绘图区域的适当位置,并输入“开始”文字,如图8所示。

    blob.png

    图8 绘制开始符号

    (6)算法的第一个步骤是接收用户输入的长度和宽度,并存储到num1和num2变量中,此时要用到输入/输出符号,在左侧符号区域选择输入/输出符号,按下鼠标左键,用鼠标拖拽到开始符号的下方适当位置,输入“接收num1和num2”内容。并在开始符号和输入/输出符号之间绘制流程线,流程线的箭头指向输入/输出符号。如图9所示。

    blob.png

    图9 绘制流程图输入/输出符号

    (7)算法的第二个步骤是判断输入的num1和num2是否大于零,根据判断情况执行不同的分支。此时要用到判断符号,在左侧符号区域选择判定符号,按下鼠标左键,用鼠标拖拽到输入/输出符号下方适当位置,并输入判定内容。如图10所示。

    blob.png

    图10 绘制流程图判断符号

    (8)如果num1或num2 小于零,提示用户输入错误。此时拖拽输入/输出符号到判定符号的左侧适当位置,输入“显示输入错误”内容,并用流程线连接判定符号和输入/输出符号,在流程线上标注“否”。如图211所示。

    blob.png

    图11 绘制判定流程否分支

    (9)算法的第三个步骤是,如果num1或num2 大于零,则执行两数相乘操作。此时应选用流程符号,拖拽流程符号到判定符号的下方适当位置,输入活动内容,并在判定符号和流程符号之间绘制流程线,流程线上标注“是”。如图12所示。

    blob.png

    图12 绘制判定流程“是”分支

    (10)算法的第四个步骤是将result变量输出到屏幕,此时应选用输入/输出符号,拖拽输入/输出符号到流程符号下方的适当位置,并绘制流程线,输入活动内容。如图213所示。

    blob.png

    图13 绘制输出/输出符号

    (11)算法流程图的绘制到此结束,拖拽开始/结束符号到绘图区域适当位置,并在结束符号和“显示输入错误”符号、“显示result”符号之间绘制流程线。在“显示输入错误”符号和结束符号之间绘制流程线,主要是算法规定当输入的num1和num2小于零时,提醒用户并退出程序。如图214所示。

    blob.png

    图14 绘制流程结束符号

     

    使用图形表示算法是非常好的思路,绘制流程图的过程就是整理思路的过程。通过绘制流程图,可以对算法进行一次完整的梳理,及时发现问题,调整思路。流程图一定要有开始和结束;菱形框表示判断,判断必须有两个分支,或者满足条件或者不满足条件;平行四边形框表示输入输出框,用于输入数据和输出数据的处理;矩形框表示处理过程,用于数值计算和业务处理;引线表示流程的方向。

     

    ■ 课程小结

    1. 流程图是算法的图形化描述。流程图用图形化的方式描述了算法从开始到结束的所有步骤,通过流程图可以直观的了解算法执行的过程,是人们之间交流算法很重要的图形化工具。

    2. 人们为了方便地使用流程图交流算法,而不至于因图形符号的问题引起对算法过程理解的混淆。人们规定了一组预定义的图形符号来表示算法的过程,并给出每个图形符号的说明。标准的流程图符号包括开始/结束符号、输入/输出符号、流程符号、子流程符号、判断符号、流程线6种图形符号,用这6种图形符号可以绘制任何类型的流程图。

    3. 绘制流程图的工具有很多,比较常用的有Visio、PPT等工具软件。绘制流程图时,必须要有开始和结束,并要遵循流程图各符号表示的含义。当需要输入数据或输出数据时,就要用输入/输出符号;当需要对条件进行判断时,就要用判断符号;当需要执行计算过程时,就要用流程符号。另外,流程线的箭头指向算法当前步骤的下一个步骤,表示算法执行过程的走向。

     

    ■ 思考与练习

    1. 思考一个求三个数最大值的算法,算法步骤通过流程图绘制出来。

    作业要求:接受用户输入的三个数值,求出最大值,将计算结果输出到显示器。

    2. 请给出第一篇思考与练习第4题算法的流程图描述。

    展开全文
  • 算法描述

    千次阅读 2012-08-26 21:04:59
    (1)一个算法可以被认为是用来解决一个计算问题的工具。 (2)一个算法是一系列将输入转换为输出的计算步骤。 【例3.1】有这样一个排序问题:将一个数字序列排序为非降序。  该问题的形式定
  • GBDT基本原理及算法描述

    万次阅读 多人点赞 2018-08-25 13:16:21
    在AdaBoost基本原理与算法描述中,我们介绍了AdaBoost的基本原理,本篇博客将介绍boosting系列算法中的另一个代表算法GBDT(Gradient Boosting Decision Tree,梯度提升树)算法。这里对GBDT的学习做一个总结,也...
  • 算法描述语言ADL

    千次阅读 多人点赞 2020-12-05 12:39:40
    用算法描述语言ADL书写算法的格式及规定如下: 算法<算法名>(变量i1,···,变量in.变量j,···,变量jn) // <算法的概括说明>或者/* <算法的概括说明> */ <步骤名>.[<本步骤的概括...
  • 算法

    万次阅读 2018-02-08 00:13:09
    1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着系统的方法描述解决问题的策略机制。...一个算法的优劣可以用空间复杂度与时间复杂度衡量。
  • 算法及其描述

    千次阅读 2018-03-01 16:48:00
    算法有五重要的特性1)有穷性 2)确定性 3)可行性 4)有输入 5)有输出算法设计应满足以下几条目标: 1)正确性 2)可使用性 3)可读性 4)健壮性 5)高效率和低存储量需求二、 算法时间复杂度分析通常有两种衡量算法效率的...
  • 1. 自然语言描述算法讲《算法什么》中给出的解决问题的算法 a、算法 b 和算法 c 都是自然语言表示算法的(见上一节的图2)。自然语言就是我们日常使用的各种语言,可以是汉语、英语、日语等。自然语言描述...
  • 还有一种流程图,叫做N-S图,是在以前的流程图的基础上重新进行了改变,去掉了流程线,并且算法的每一步都用一个框进行描述,最终的执行是将所有的矩形框按照顺序连接起来。二、伪代码伪代码是一种介于我们编写的由....
  • 算法描述---伪代码

    千次阅读 2017-11-23 14:13:40
    算法描述  算法描述是指对设计出的算法,一种方式进行详细的描述,以便与人交流。描述可以使用自然语言、...因此,使用伪代码描述算法是一个很好的选择。  算法的特征 输入:一个算法必须有零个或以上输入量
  • 数据结构算法与应用C++语言描述.rar数据结构算法与应用C++语言描述.rar数据结构算法与应用C++语言描述.rar数据结构算法与应用C++语言描述.rar数据结构算法与应用C++语言描述.rar数据结构算法与应用C++语言描述.rar...
  • 算法学习总结(2)——温故十大经典排序算法

    万次阅读 多人点赞 2019-08-29 14:57:51
    一、什么是排序算法 1.1、排序定义 对一序列对象根据某个关键字进行排序。 1.2、排序术语 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;...时间复杂度:一个算法执行所耗费的时间。空间...
  • BRIEF描述子生成算法

    千次阅读 2017-02-03 23:07:07
    学习OpenCV关注微信公众号【OpenCV学堂】:介绍我们知道SIFT算法通常通过对每关键点生成128特征向量作为描述子、SURF算法通常对关键点生成最少64特征向量作为描述子。但是对于图像说创建上千或者上万...
  • 层次聚类分为两种: (1) 凝聚的层次聚类:自底向上的策略,首先将每个对象作为一个簇,然后合并这些原子簇为更大的... AGNES(Agglomerative Nesting) 是凝聚的层次聚类算法,如果簇C1中的一个对象和簇C2中的一个
  • LibTomCtypt中为密码算法定义了一个算法描述子cipher_descriptor,可以把它理解为一个类,里面描述了密码算法应该有的变量和函数操作。密码算法描述子的详细描述可以参见tomcrypt_cipher.h   extern struct ltc_...
  • 前言 使用通俗的语言简单回顾一下JVM GC的...在受GC管理的资源上维护一个计数位,用来记录有多少引用指向它,当该计数位为0时,认为是Garbage。这种标记算法的最大缺点是,无法将存在循环引用的Garbage正确标记出来,如
  • 句话+一张图说清楚——银行家算法

    万次阅读 多人点赞 2018-05-08 21:10:44
    我相信一句话可以讲清楚一个算法的核心思想,一张图可以描述整个算法的操作步骤。但本人能力有限,错误之处望大家指出,多谢。 一句话: 当一个进程申请使用资源的时候,银行家算法通过先 试探 分配给该进程...
  • BRIEF描述算法学习

    千次阅读 2017-12-06 14:52:58
    种对已检测到的特征点进行描述算法,它是种二进制编码的描述子,在图像匹配时使用BRIEF能极大的提升匹配速度。 算法步骤如下: 1、为减少噪声干扰,先对图像进行高斯滤波(方差为2,高斯窗口为9x9)。 2、...
  • SIFT算法原理与OpenCV代码描述

    千次阅读 2021-06-03 14:20:26
    Sift是我接触到的第一个计算机视觉相关的比较高级的算法,虽然时过境迁,但鉴于该算法的思想性和作用,我认为仍然是从图像处理到计算机视觉过渡的必学算法。该算法相比于一些基础算法,多了很多数学原理的应用与分析...
  • 如何评价一个算法的好坏

    千次阅读 2019-04-27 21:38:39
    首先,这个算法必须是正确的 其次,好的算法应该是友好的,便于人们理解和交流,并且是机器可...定义:在计算机科学中,算法的时间复杂度是一个函数,他定量描述了该算法的运行时间.一个算法执行所耗费的时间,从理论上...
  • 写文章描述算法的latex模板,简单实用
  • 算法精解:C语言描述(中文版).pdf

    千次下载 热门讨论 2014-03-23 08:21:49
    适合学习算法和程序员。算法精解:C语言描述(中文版).pdf
  • 给你一个算法应该怎么写程序(数学建模 matlab)

    万次阅读 多人点赞 2017-08-27 13:29:52
    本文写作初衷:有个可爱的学妹问我在看到一个算法编程时的步骤是什么,然而作为伪大神的我,感觉并不知道怎么回答,感觉我编程就俩字死磕,错了咋办?再一遍!不行咋办?换个写法试试!还不行?百度!不过既然人家...
  • 递推算法是非常常用的算法思想,在数学计算等场合有着广泛的应用。递推算法适合有明显公式规律的场合。   递推算法基本思想 递推算法是一种理性思维莫斯的代表,...如果满足要求,则表示寻找到一个正确答案。 递推算
  • 《数据结构与算法Python语言描述》裘宗燕 笔记系列 该系列笔记结合PPT的内容整理的,方便以后复习,有需要的朋友可以看一下。 源码重新整理了 地址:https://github.com/StarsAaron/DS/tree/master   理解三...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,003,674
精华内容 401,469
关键字:

一个算法可以用什么来描述