【C语言基础】C语言第二章

第二章 程序的灵魂--算法
程序 = 数据结构 + 算法
数据结构(data structure):把一些数据类型和这些数据类型的数整合成一种特定格式。
如:队列(queue),栈(stack),二叉树。
例:给定16个数,求区间最大值。
2  5  16  8  9  25  3  6  11  13  4  8  13  22  31  7
算法:解决问题的方法。
(所以以我的角度,我觉得:数据结构也是属于算法的)
/************************
扩展:算法的有趣的例子:
题1:一共有哈尔滨和北京两个城市可以选,小明一开始在哈尔滨,每天小明会选择留在自己当前的城市,或者飞到另一个城市,问:8天后小明在北京的方案数一共有几个?
设: 
天数 0 1 2 3 4 5 6 7 8
城市 哈尔滨    北京   哈尔滨   北京    北京   哈尔滨   北京    哈尔滨  北京
算一种方案。
这里还用到了:矩阵快速乘法~
题2:求两个数的最大公约数。
题3:取火柴游戏。
***********************/
例2.1 求1×2×3×4×5
最原始的方法:
步骤一:先求1×2,得到结果2.
步骤二:将步骤一得到的乘积2再乘以3,得到结果6.
步骤三:将6再乘以4,得到24.
步骤四:将24再乘以5,得到结果120.这就是最后的结果。
缺点:太繁琐。
改进的算法:
S1:使p=1
S2:使i=2
S3:使p*i,乘积仍放在变量p中,可表示为:p*i→p
S4:使i的值加1,即i+1→i
S5:如果i不大于5,返回重新执行步骤3以及其后的步骤S4和S5;否则,算法结束。最后得到p的值就是5!的值。
怎样表示一个算法:
1.自然语言
2.流程图page.20 图2-3 的一般流程图
3.三种基本结构(顺序结构;选择结构;循环结构(蠕虫))和改进的流程图
4.伪代码
6.计算机语言(C语言...)
结构化程序设计方法:
(1)自顶向下;
(2)逐步细化;
(3)模块化设计;
(4)结构化编程。


课后题:
2.4(1)(7)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值