程序=算法+数据结构
目录
1.算法的概念
- 程序中的操作语句就是算法的体现。
- 算法是独立存在的一种解决问题的方法和思想。。
- 解决一个问题而采取的方法和步骤。
2.算法的五大特性
- 输入:(有零个或者多个输入)因需要,我们会在计算时需要多种不同的变量,此时我们所需要的输入也会因此变多。
例:
C语言中的输入 scanf("控制格式",地址表列);
格式字符 | 说明 |
---|---|
d,i | 输入有符号的十进制整数 |
u | 输入无符号的十进制整数 |
o | 输入无符号的八进制整数 |
x,X | 输入无符号的十六进制整数(大小写作用相同) |
c | 输入单个字符 |
s | 输入字符串(结束标志 ‘ \0 ’ ) |
f | 输入实数,可以用小数形式或者指数形式输入 |
e,E,g,G | 与f作用相同,e与f,g可以互换(大小写作用相同) |
字符 | |
---|---|
l | 输入长整型数据(可用%ld,%lo,%lx,%lu)以及double型数据(%lf或%le) |
h | 输入整短型数据(可用%hd,%ho,%hx) |
域宽 | 指定输入数据所占宽度(列数),域宽应为正整数 |
* | 本输入项在读入后不赋给相应的变量 |
字符输入: get() 字符串输入:gets()
- 输出:(有一个或者多个输出)计算的目的就是为了求解,“解”即为一个算法的输出。如果没有输出,这个算法也是没有意义的。
printf(格式控制,输出表列)
字符输出: put() 字符串输出:puts()
- 有穷性:算法所包含的是有限的操作步骤,而非无限。无穷的算法会超出合理的限度,超出人们的常识及认知。
- 确定性:算法的每个步骤应该是确定的,不确定的步骤会导致运行终止,从而无法执行算法。
- 有效性:算法中的每个步骤都应当得到有效的执行,即算法中的每一条指令都是可以实现的,均能在有限的时间内完成并且得到确定的结果。有效的执行可以减少错误的出现。
3.算法的优劣
- 正确性:缩写算法满足具体问题。
- 可读性:算法写好后,可以被理解的难易程度。
- 健壮性:在非法数据输入是,算法可以作出相应的判断,而不会因此造成程序瘫痪。
- 时间复杂度与空间复杂度:时间复杂度是指算法运行所需时间。空间复杂度是指算法运行所需的储存空间大小。