数据结构与算法:概述+思维导图
还记得这个经典公式吗?
程序=数据结构+算法
可见数据结构和算法对于程序的重要性。基于此博主写了数据结构与算法系列随笔。下⾯先给出数据结构与算法的思维导图。
⼀.数据结构的基本概念
数据结构定义:
数据结构是⼀种存储和组织数据的⽅式,以便于访问和修改。数据结构包括数据的逻辑结构、数据的存储结构以及数据的运算,即按照某种逻辑关系组织起来的⼀批数据,按⼀定的映射⽅式把它存放在计算机的存储器中,并在这些数据上定义了⼀个运算的集合。
数据的逻辑结构:反映数据元素之间的关系。有集合、线性结构、树型结构、图型结构。
数据的存储结构:逻辑结构在计算机中的存储映象,是逻辑结构在计算机中的实现,它包括数据元素的表⽰和元素之间关系的表⽰。数据结构与算法思维导图
有顺序存储结构(数组)、链式存储结构(链表)、索引存储结构、散列存储结构等。
数据的运算:对数据施加的操作,通过算法描述。
⼆.算法的基本概念
算法定义:
计算机求解⼀个问题所需的⼀系列步骤
算法的基本特性:
1. 输⼊:⼀个算法有0个或者多个输⼊,以刻画运算对象的初始情况,所谓0个输⼊是指算法本⾝给出了初始条件;
2. 输出:⼀个算法有⼀个或多个输出,以反映对输⼊数据加⼯后的结果。没有输出的算法是毫⽆意义的;
3. 有穷性:算法必须能在执⾏有限个步骤之后终⽌;
4. 确切性:算法的每⼀步骤必须有确切的定义;
5. 可⾏性:算法中执⾏的任何计算步骤都是可以被分解为基本的可执⾏的操作步,即每个计算步都可以在有限时间内完成。
算法设计的要求:
1. 正确性:设计的算法能满⾜具体问题的需求,并且任何合法的输⼊都会得出正确的输出;
2. 可读性:是指算法被写好之后,该算法理解的难易程度,⼀个算法可读性的好坏⼗分重要。如果⼀个算法⽐较抽象且难以理解,那么
这个算法就不利于交流和推⼴使⽤,对于修改、扩展、维护来说都⼗分不⽅便,因此,在追求⾼效的同时,也应是算法尽量简明易懂。
3. 健壮性:当输⼊数据⾮法时,算法也会做出相应的判断,⽽不会因为输⼊的错误⽽造成瘫痪。
4. 时间效率⾼(时间复杂度)和需要的存储空间少(空间复杂度)
时间复杂度:
程序⼤概的执⾏次数(不是执⾏时间)。⼀般情况下,算法中基本操作重复执⾏的次数是问题规模n的
某个函数,⽤T(n)表⽰,若有某个辅助函数f(n),使得当n趋近于⽆穷⼤时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度
空间复杂度:
该算法所耗费的存储空间,它也是问题规模n的函数。其是对⼀个算法在运⾏过程中临时占⽤存储空间⼤⼩的量度。⼀个算法在计算机存储器上所占⽤的存储空间,包括存储算法本⾝所占⽤的存储空间,算法的输⼊输出数据所占⽤的存储空间和算法在运⾏过程中临时占⽤的存储空间这三个⽅⾯。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论