大话数据结构-算法
1:数据结构与算法的关系
通过算法可以更好的理解数据结构,不可分割,按书中所说就是梁山伯与祝英台的关系。。。。
2:什么是算法
未解决某个或某类问题,需要把指令表示成一定的操作序列,操作序列包括一组操作,每个操作都能完成特定的功能。。。。
3:特性
算法最终要实现到我们具体的方法上,方法就会有参数,特性一:输入输出,传入参数和返回值。方法不能死循环,特性二:有穷性,总会结束的,在你可接受的时间范围内。特性三:确定性,每个算法都有他的目的,输入一个参数就会返回唯一的输出结果。特性四:可行性,算法弄出来是为了解决问题,所以他必须能解决问题。
4:设计算法的要求
1:正确性,设计一个算法总的能解决你的问题,并是正确的。有一下要求:
一:没有语法错误,编译通过。
二:输入合法的参数能返回正确的结果。
三:对非法的输入参数进行校验,返回合理的结果。
四:能应付刁难问题。
2.可读性,设计算法你的能让其他人能看懂,能理解。代码要易读。
3:健壮性, 对应正确性的第三条,对不合法的输入,做出相关处理,不能产生异常和莫名的bug。
4:时间效率高,存储量低,在最少的时间用最小的内存解决问题。
5:时间复杂度和空间复杂度---检验我们设计出算法是不是是一个正经的好算法。。。
测定运行时间最可靠的方法就是计算对运行时间有消耗的基本操作执行的次数。运行时间与这个计数次数成正比。。。
在判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注主项(最高阶项)的阶数。