数据结构与算法概述

  • A+

经历过今天

我第一次去面试

谈到解决方法都被面试官问得哑口无言

我决定好好学习,天天向上

学会思考,学会实现

程序设计 = 数据结构 + 算法

程序语言紧紧只是一种工具


数据的逻辑结构:数据对象中数据元素之间的相互关系

数据的物理结构:数据的逻辑结构在计算机中的储存形式

物理结构也叫储存结构

包括:顺序储存结构和链式储存结构

顺序储存结构指的是把数据储存到相邻的储存单元中

链式储存结构是将数据元素任意的存放到储存单元中,并每个数据元素用一个指针指向下一个数据元素,将他们联系到一起


集合结构:除了同属于一个集合外,没有其他不三不四的关系了

数据结构与算法概述
就像这些小点,除了在同一个圆圈内

它们之间并没有其他的联系


线性结构:数据元素之间,一对一的关系

数据结构与算法概述
如图所示,一个接一个


树形结构:一对多的关系

数据结构与算法概述


图形结构:多对多的关系

数据结构与算法概述


算法的五个特征

①输入:可以具有0个或多个输入

②输出:至少有一个或多个输出

③有穷性:算法在执行有限的步骤后输出结构会自动结束

④确定性:算法中的每一条指令必须有确切的含义,不能有多义性

⑤可行性:算法中的每条指令都是切实可行的,也就是通过某些指令能够得出准确的结构


算法设计的要求

①正确性:输入数据后经过算法的加工最终可以得到正确的结果

②可读性:算法的设计不单单是给电脑看的,也是给人看的,所以要通俗易懂,人能够看明白

③健壮性:就是当输入的数据不合理的时候,可以提示出错误并不给于执行

④时间效率高和存储量低:相对于同等目的的算法,当然是执行速度越快越好,要使用的内存空间越小越好了,当然这二者一般是相对的


算法效率的度量方法

抽象出算法随着输入规模的变化对应代码执行次数的对应公式

来表示效率的度量方法

大O阶:表示算法的运行效率

①.用常数1取代运行次数的所有加法常数(如8就是1)

②只保留最高阶项(如n^2+n就只保留n^2 )

③如果最高项存在且不是1,则去除这个项的系数(如3n 就是 n)

④得到的就是大0阶了

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: