« 十年之006:算法的基本形式十年之008:生活算法案例 »

十年之007:用文字图表符号呈现的算法

    算法可以说是产生方法的方法。
    为了更好掌握算法,就需要尽量地把它表现出来。明确表现出来的算法会对人有更大的帮助。尤其是对于希望尽快地从某技术领域的生手转变到熟手、专家级的人来说更是这样。
    人们在解决相对简单或者经历过的问题时,往往会直接根据头脑中形成的经验去完成。这时,找到解决问题的方法是回忆的过程,会在一瞬间完成。从分析到回忆、从回忆到产生方法速度非常快。这种情况下,算法往往处于一种隐性状态。越是熟练,产生算法时越不会占用特意的思维。相反情况则需要停下来思维了。越陌生的、越复杂的问题越需要明白其中的“算法”。
    为了把算法弄得更清晰,在表达、分析、设计算法的过程中,可以使用图表、符号、文字等分成层级化、结构化、流程化三种不同的表现形式来表现出来。
    为了解决问题,往往需要从理解问题开始。其中要搞清楚三个方面的关系。一个方面是层级关系,是事物间的上位与下位、抽象与具体等关系;另一个方面是结构关系,是主体与其他各个相关方面的关系;有了前两种关系理解,才能更好地形成次序关系,是解决问题的流程。层级、结构、次序关系的表现是呈现算:wL-:w0:w-:w :w,:w:w,:w:w,:w:wh,:wl:w<,:w@:w,:w :w+:w:w+:w:w+:w:wl+:w:w<+:w:w+:w:w*:w:w*:wp:wL*:wP:w( *:w0:w):w:w):w:w`):w:w4):w:w ):w:w-(:w`:w(:w8:w(:w:w(:w)w p(:wP;wT(:w)w 4(:wP;w'(:w)w':wP;w ':wL;w':w;w>':w)w?x':wP;w X':wL;w:4':w;w1':w)w&:wP;w &:wL;w&:w;w&:w)wh&:wP;w D&:wL;w&:w;w<%:w)w9%:wP;w A%:wL;w%:w;wC%:w)wh%:wP;w *H%:wL;w;$%:w;w,%:w)w$:wP;w $:wL;w$:w;wt$:w)wX$:wP;w 4$:wL;w $:w;w#:w)w #:wP;w#:w)w#:wP;wh#:wL;w@#:w;w#:w)w":wP;w":w)w ":wP;w":wL;wd":w;wH":w)w (":wP;w=":w)w!:wP;w!:wL;w!:w;w|!:w)w \!:wP;w@!:w)w  !:wP;w!:w)w :wP;w :w)w  :w)w  :wP;w` :wL;w8 :w;w :w)w:w)w :wP;w:wL;w :w )w K:w )w :w)w t:w)w X:wP;w <:wL;w    ؖSw\O\w @xh\w@W\w`\wQ\wh\w(&IOpIY/(e \]w     '' 2  +w+w+wh\]w+w\]w +w\]w);w8a]wxS]w(;whe]w