算法的基本逻辑结构-概述

来源:互联网 发布:java web action 编辑:程序博客网 时间:2024/06/05 16:49

    首先我们需要明白的是,什么是法?

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

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

    在程序流程图中,我们经常使用到以下几种基本图形:

    

    我们简单地了解了算法及流程图的作用,下面开始探究算法的基本逻辑结构:

   一、顺序结构

    什么是顺序结构?

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

    例如,我们模拟大家到ATM机上取款的算法,其它它就是一种顺序结构:

    

    一些简单的算法可以顺序结构来表示,但是这种结构无法对所描述的对象进行逻辑判断,并根据判断结果进行不同的处理。因此,我们需要另外一种逻辑结构来处理这类问题,这就是我们要讲到的条件结构。

   二、条件结构

    什么是条件结构?

    在解决某些问题的算法中,有些步骤是只有在一定的条件下才会被执行,算法的流程会根据条件是否成立有不同的流向。像这种需要先根据条件判断,再决定执行哪一个步骤的结构,我们称之为条件结构,有时也称选择结构或分支结构。

    

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

    思路分析:先比较2个数,取其中大者与第三个数比较,得出较大者为最大数,记为max。步如下:

    第一步:输入a,b,c

    第二步:比较ab,若ab,则执行第三步;否则,执行第四步

    第三步:比较a,c,若a>c,则输出最大数max=a;否则,输出最大数max=c

    第四步:比较b,c,若b>c,则输出最大数max=b;否则,输出最大数max=c。

    

    三、循环结构

    什么是循环结构?

    在一些算法中,经常会出现从某处开始,按照一定的条件,反复执行某一个步骤的操作,我们就把这种结构称之为循环结构。

    

    上图我们可以看出,只有在满足循环条件的情况下,才能执行循环体的操作。那么,如果我们在算法中,是否会存在这种情况呢:循环条件永远满足导致循环体一直会被执行?

    答案是:会。

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

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

    

    以上我们简单了解了算法的基本逻辑结构,这些都是我们以后更加深入学习的基础。