1.1 数据结构和算法的概念
数据结构与算法相辅相成,不会孤立存在;数据结构是为算法服务的,算法是作用在特定的数据结构之上(如数组具有随机访问的特点,二分查找算法需要用数组来存储数据)。
数据结构是静态的,只是组织数据的一种形式,若不在它的基础上操作、构建算法、孤立存在的数据结构是没有意义的。
两种层面区分数据结构和算法
广义:
数据结构:一组数据的存储结构
算法:操作数据的一组方法
狭义:
指的是某些著名的数据结构和算法,如:队列、栈、堆、二分查找、动态规划等
为什么学数据结构和算法
学好算法写出 时间复杂度高、空间复杂度高的垃圾代码也会越来越少,可以提升自己的代码性能,从而使自己的编程水平得到质的飞升。
建立时间、空间复杂度意识,写出高质量代码,能够设计基础架构,提升编程技能,训练逻辑思维,积攒人生经验,以此获得工作回报,实现你的价值,完善人生。
1.2 算法的五大特性
输入:算法具有0个或多个输入
输出:算法至少有1个或多个输出
有穷性:算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成
确定性:算法中的每一步都有确定的含义,不会出现二义性
可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成
作者:焰火青春
链接:https://www.jianshu.com/p/f5a6bd129636
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。