
2第章算法一一程序的灵魂
2 算法——程序的灵魂 第 章

算法+数据结构=程序数据结构对数据的描述。在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。算法对操作的描述。即要求计算机进行操作的步骤沃思
数据结构 对数据的描述。在程序中要指定用到 哪些数据,以及这些数据的类型和数 据的组织形式。 算法 对操作的描述。即要求计算机进行操 作的步骤 算法+数据结构=程序 沃思

孜然羊肉的菜谱原料】羊后腿肉300克,香菜叶30克,料酒30克,盐1克,味精1克辣椒面10克,孜然15克,葱白20克,姜20克,油300克。(做法1.将羊肉顶刀切成长4厘米、宽2,5厘米,厚0.3厘米的片葱、姜洗净分别切段和块,用刀拍一下。2.孜然放在干净锅内用小火炒干,放在砧板上碾压成细末,与辣椒面一同放在器皿中加味精拌匀。将香菜叶洗净放在碗中。3.将羊肉放在器皿中,加入料酒、盐、少许水,搅拌均匀后再将葱姜放入,腌渍20分钟把葱姜去掉。4.炒锅上火,放油烧到六成热把羊肉片放入锅内滑开,待原料出水较多,油温下降时取出。5.油温重新升高时再把羊肉片放入锅内复炸一次取出,加入孜然、辣椒面、味精拌匀装到盘中,上桌时在上面撒香菜叶即可
孜然羊肉的菜谱 【原料】 羊后腿肉300克,香菜叶30克,料酒30克,盐1克,味精1克, 辣椒面10克,孜然15克,葱白20克,姜20克,油300克。 【做法】1.将羊肉顶刀切成长4厘米、宽2.5厘米、厚0.3厘米的片。 葱、姜洗净分别切段和块,用刀拍一下。2.孜然放在干净锅内用小火 炒干,放在砧板上碾压成细末,与辣椒面一同放在器皿中加味精拌匀。 将香菜叶洗净放在碗中。3.将羊肉放在器皿中,加入料酒、盐、少许 水,搅拌均匀后再将葱姜放入,腌渍20分钟把葱姜去掉。4.炒锅上火, 放油烧到六成热把羊肉片放入锅内滑开,待原料出水较多,油温下降 时取出。5.油温重新升高时再把羊肉片放入锅内复炸一次取出,加入 孜然、辣椒面、味精拌匀装到盘中,上桌时在上面撒香菜叶即可

·沃思(NikiklausWirth)公式·数据结构十算法一程序·原材料+做法=菜谱·但是还必须具备一些其他条件·程序一算法十数据结构十程序设计方法十语言工具环境·大餐=制作方法+原材料+制作模式+制作工具·数据结构为加工对象·语言工具环境和设计方法是实现的平台·算法是灵魂,是你的思想
• 沃思(Nikiklaus Wirth)公式 • 数据结构+算法=程序 • 原材料 + 做法=菜谱 • 但是还必须具备一些其他条件 • 程序=算法+数据结构+程序设计方法+语言工具环境 • 大餐=制作方法+原材料+制作模式+制作工具 • 数据结构为加工对象 • 语言工具环境和设计方法是实现的平台. • 算法是灵魂, 是你的思想

配菜顺菜流程灶台炊具菜谱厨神
菜谱 厨神 配菜 灶台炊具 顺菜流程

数据结构程序设计方法语言工具算法程序员
算法 程序员 数据结构 语言工具 程序设计方法

算法广义地说,为解决一个问题而采取的方法和步骤,就称为算法"。对同一个问题,可以有不同的解题方法和步骤。为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法
算 法 广义地说,为解决一个问题而 采取的方法和步骤,就称为 “算法”。 对同一个问题,可以有不同的 解题方法和步骤。 为了有效地进行解题,不仅需 要保证算法正确,还要考虑算 法的质量,选择合适的算法

数值运算的目的是求数值解。非数值运算算法由于数值运算往往有现成的模型,可以运用数值分析方计算机在非数值运算方面的应法,因此对数值运算的算法用远超在数值运算方面的应用。算法的研究比较深入,算法比较非数值运算的种类繁多,要求成熟。各异,需要使用者参考已有的数值运算算法类似算法,重新设计解决特定问题的专门算法
非数值运算算法 数值运算算法 算法 数值运算的目的是求数值解。 由于数值运算往往有现成的 模型,可以运用数值分析方 法,因此对数值运算的算法 的研究比较深入,算法比较 成熟。 计算机在非数值运算方面的应 用远超在数值运算方面的应用。 非数值运算的种类繁多,要求 各异,需要使用者参考已有的 类似算法,重新设计解决特定 问题的专门算法

简单的算法举例若题目改为:求1×3×5×7×9×11【例2.1】求1×2×3×4×5算法步骤算法步骤S1:令p=1或写成1=>p(表示将1存放在变量p中)S1:先求1乘以2.得到结果2S2:令i=3或写成3=>i表示将2存放在变量i中)S2:将步骤1得到的乘积2再乘以3,得到结果6S3:使p与i相乘,乘积仍放在变量p中,可表示为:p*=>pS3:将6再乘以4,得24S4:使的值加2即i+2=>iS4:将24再乘以5,得120S5:若i≤11,返回S3;否则,结束否贝或者若i>11,结束;否则,返回S3用这种方法表示的算法具有一般性、通用性和灵活性
简单的算法举例 【例2.1】求1×2×3×4×5 S1: 先求1乘以2,得到结果2 S2: 将步骤1得到的乘积2再乘以3,得到结果6 S3: 将6再乘以4,得24 S4: 将24再乘以5,得120 算法步骤 S1: 令p=1,或写成1=>p(表示将1存放在变量p中) S2: 令i=2,或写成2=>i(表示将2存放在变量i中) S3: 使p与i相乘,乘积仍放在变量p中,可表示为: p*i=>p S4: 使i的值加1,即i+1=>i S5: 如果i不大于5,返回重新执行S3及其后的步骤S4和S5; 否则,算法结束。最后得到p的值就是5!的值。 算法步骤 若题目改为: 求1×3×5×7×9×11 3=>i i+2=>i 若i≤11,返回S3;否则,结束 或者 若i>11,结束;否则,返回S3 i=3 2 用这种方法表示的算法具有一般性、通用性和灵活性

简单的算法举例【例2.2】有50个学生,要求输出成绩在80分以上的学生的学号和成绩算法步骤n:表示学生学号下标i:表示第几个学生S1:1=>int:表示第一个学生的学号S2:如果g≥80,则输出n和gi,否则不输出n:表示第i个学生的学号S3:i+1=>ig:表示学生的成绩S4:如果i≤50,返回到S2.继续执行,否则91:表示第一个学生的成绩算法结束9:表示第i个学生的成绩
简单的算法举例 【例2.2】有50个学生,要求输出成绩在80分以上的学生的学号和成绩 S1: 1=>i S2: 如果gi≥80,则输出ni和gi,否则不输出 S3: i+1=>i S4: 如果i≤50,返回到S2,继续执行,否则, 算法结束 算法步骤 n:表示学生学号 下标i:表示第几个学生 n1:表示第一个学生的学号 ni:表示第i个学生的学号 g:表示学生的成绩 g1:表示第一个学生的成绩 gi:表示第i个学生的成绩