算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。一般算法有顺序结构、选择结构、循环结构三种基本逻辑结构。

中文名

算法逻辑

外文名

Algorithm logic

分    类

计算机 编程基本结构

顺序 选择 循环

常    用

流程图

优    势

简洁

特    点

只有一个出口和入口

算法逻辑简介

编辑

语音

算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。

我们可以用自然语言来描述一个算法详细信息,但这样做的话,往往过程比较复杂,缺乏简洁性,同时自然语言描述的内容可能使不同的读者产生不同的理解,因此,我们很有必要来探究使算法表达得更加简洁,更加直观,更加准确的方法,其中最普遍使用到的是程序流程图。

一般算法有顺序结构、选择结构、循环结构三种基本逻辑结构。

算法逻辑顺序结构

编辑

语音

顺序结构是最简单的算法结构,框与框之间,语句与语句之间,都是按照它们出现的先后顺序依次进行的,即它是由若干个依次执行的处理步骤组成的。可以说顺序结构是任何一个算法都离不开的一种基本逻辑结构。

如图1,其中A和B两个框是依次执行的,只有在执行完A框所指定的操作后,才能接着执行B框所指定的操作。顺序结构的一个简单的例子是交换变量a和b的值。

图1

算法如下:

S1:m=a; S2:a=b;S1:b=m;

程序框图如图2:

图2

例:尺规作图,确定线段一个五等分点。

步骤:1、从线段的左端A点出发做一条射线;

2、在射线上取点C,得到单位线段AC;

3、在射线上做线段CE=AC;EF=AC;FG=AC;GD=AC;

4、连接DB;

5、过C做BD的平行线,交线段AB于M,即为五等分点。

算法逻辑选择结构

编辑

语音

在一个算法中,经常会遇到一些条件的判断、算法的流程根据条件是否成立有不同的流向,这种先根据条件作出判断,再决定执行哪一种操作的结构称为选择结构,如图3所示的一个条件分支结构,此结构中包含一个判断框,根据给定的条件P是否成立而选择执行A框或B框,请注意,无论P条件是否成立,只能执行A框或B框之一,不可能既执行A框又执行B框,也不可能A框和B框都不执行。无论走哪一条路径,在执行完A框或B框之后,脱离本选择结构。A框或B框两个框中,可以有一个是空的,即不执行任何操作。

图3

例:输入3个数a,b,c,要求输出最大值

步骤:

1、先比较2个数,取其中大者与第三个数比较,得出较大者为最大数,记为max

2、输入a,b,c

3、比较a,b,若a>b,则执行第三步;否则,执行第四步

4、比较a,c,若a>c,则输出最大数max=a;否则,输出最大数max=c

5、比较b,c,若b>c,则输出最大数max=b;否则,输出最大数max=c。

算法逻辑循环结构

编辑

语音

需要重复执行同一操作的结构称为循环结构,即从某处开始,按照一定条件反复执行某一处理步骤,反复执行的处理步骤称为循环体。循环结构中通常都有一个起循环计数作用的变量,这个变量的取值一般都包含在执行或终止循环的条件中。循环结构有while型循环(也称当型循环)和until型循环(也称直到型循环)两种。

例:求解1到100之间所有数字之和

我们可以知道,只有在满足循环条件的情况下,才能执行循环体的操作。那么,在算法中,也会存在这种情况呢:循环条件永远满足导致循环体一直会被执行。

如果出现类似这种循环,我们称之为死循环。因为循环条件满足,则循环体会被无休止的执行下去,直到资源耗尽,那么,假若在循环结构之后还有其它的算法步骤,则没有机会被执行到。为了避免这种情况的出现,我们应该尽量在循环体中构建出能够退出循环的条件,以确保循环结构之后的算法步骤能够被执行到。当然,我们也可以在循环体中使用break,continue,return这样的跳转语句来使循环体有机会被跳出[1]

算法逻辑特点

编辑

语音

这三种基本结构的共同特点是:

1、只有一个入口和出口。

2、结构内的每一部分都有机会被执行到,也就是说对每一个框来说都应当有一条从入口到出口的路径通过它,没有一条从入口到出口的路径通过它,就是不符合要求的算法结构。

3、结构内不存在死循环,即无终止的循环,在流程图中是不允许死循环的。

词条图册

更多图册

计算机逻辑算法,算法逻辑相关推荐

  1. Python+sklearn使用逻辑回归算法预测期末考试能否及格

    封面图片:<Python程序设计实验指导书>,董付国编著,清华大学出版社 ================= 虽然名字中带有"回归"二字,但实际上逻辑回归是一个用于分类 ...

  2. Python使用逻辑回归算法根据三围数据判断用户性别

    逻辑回归算法是一种经典的分类算法,使用时应注意: 1)样本需要足够多. 2)样本的多个特征之间尽量不要存在线性相关性. 问题描述: 根据三围数据判断用户性别.假设男性和女性的三围和身高的计算公式如下: ...

  3. 向无所不能逼近的算法 逻辑与算法之一

    向无所不能逼近的算法  逻辑与算法之一 了不起的算法 1840年代,英国数学家巴贝奇弄出了计算机的雏形,那只是机器或者叫计算机的硬件.这当然很重要,但更重要的一个发明则属于英国女数学家艾达,这位绝代女 ...

  4. 逻辑回归算法原理简介

    1,逻辑回归简介 逻辑回归完成分类任务,是经典的二分类算法(也可以解决多分类问题),机器学习算法一般选择先逻辑回归(优先选择)再用复杂的,逻辑回归的决策边界可以是非线性的(高阶).可以通过参数对结果进 ...

  5. 基于机器学习逻辑回归算法完成癌症病人的肿瘤是否良性的判断

    https://www.toutiao.com/a6630407688360575502/ 2018-12-04 22:46:48 逻辑回归算法 虽然逻辑回归算法的名字中有回归二字,但是它却不是回归算 ...

  6. 逻辑回归算法c语言_逻辑回归算法背后的数学

    逻辑回归算法背后的数学 看完深蓝学院的机器学习公开课后,对于逻辑回归部分,打算写篇学习笔记记录总结一下,也和大家共同分享. 1 基本思能 逻辑回归(Logistic Regression)和线性回归( ...

  7. 机器学习——逻辑回归算法

    文章目录 逻辑回归算法 逻辑回归概念 Sigmoid函数 逻辑回归模型 代价函数 最终运用梯度下降求解 实验 总结 逻辑回归算法 首先明确一个概念,逻辑回归并不是解决回归问题,而是解决分类问题,它是通 ...

  8. ML之LoR:基于LoR(逻辑回归)算法对乳腺癌肿瘤(9+1)进行二分类预测(良/恶性)

    ML之LoR:基于LoR(逻辑回归)算法对乳腺癌肿瘤(9+1)进行二分类预测(良/恶性) 目录 输出结果 设计思路 数据集 核心代码 输出结果 Testing accuracy (10 trainin ...

  9. 分析决策树算法和逻辑回归算法的不同之处

    首先我们导入一组airplan.xlsx数据. 数据表中的age表示年龄.FLIGHT_COUNT表示飞行次数.BASE_POINTS_SUM表示飞行里程.runoff_flag表示流失与否,定义1为 ...

  10. 朴素贝叶斯算法和逻辑回归算法的区别?

    朴素贝叶斯算法和逻辑回归算法的区别? 1.两种算法的模型不同: Naive Bayes是一个生成模型,在计算P(y|x)之前,先要从训练数据中计算P(x|y)和P(y)的概率,从而利用贝叶斯公式计算P ...

最新文章

  1. ZooKeeper系列(4):ZooKeeper的配置文件详解
  2. 一些很特别的J2ME开源项目
  3. 【学习笔记】Python 基础零碎知识
  4. Opencv中三种操作像素的方法
  5. SQL Server 2000 索引视图提高性能2
  6. 8.2设备文件及磁盘分区
  7. 给定数组A []和数字X,请检查A []中是否有对X | 使用两个指针算法,O(1)空间复杂度| 套装2...
  8. 芯片短缺并未缓解,机构数据显示交付周期在7月份已超过20周
  9. 自定义Hibernate Validator规则注解
  10. 【百度地图】——利用三级联动加载百度地图
  11. C++串口通信API方式
  12. @程序员,这 TOP 11 物联网云平台速码!
  13. input 限制只能输入数字,且保留小数后两位
  14. VS2013使用VS2015工程
  15. 小学听力测试英语软件,亲测:好用的小学英语软件有哪些?这6款通通安利给大家!...
  16. 括号序列(DP优化)
  17. 斐讯K2 E1 刷老毛子Padavan中继图文教程(与主路由同网段)
  18. 好好说话之hijack GOT
  19. java8中的Stream流式操作总结,List转Map或List转LinkedHashMap使用Collectors.groupingBy用法
  20. asp.net 是什么?

热门文章

  1. 形容长得丑的30句经典句子
  2. python实现最大独立集算法_2018校招总结(外企,国内大公司,国内创业公司)...
  3. [Swift]LeetCode15. 三数之和 | 3Sum
  4. swagger3 不能传header未解之谜
  5. 谈谈我对软件开发项目管理的理解
  6. ps国画效果案例制作教程和思路介绍
  7. BZOJ4355: Play with sequence
  8. can总线短距离不用双绞线_can总线(一)物理层—屏蔽双绞线
  9. linux设置为adhoc模式,Linux下两台笔记本电脑adhoc模式搭建局域网跟adhoc无线自组织网络...
  10. 【Java】不可变类(immutable)总结