- A+
经历过今天
我第一次去面试
谈到解决方法都被面试官问得哑口无言
我决定好好学习,天天向上
学会思考,学会实现
程序设计 = 数据结构 + 算法
程序语言紧紧只是一种工具
数据的逻辑结构:数据对象中数据元素之间的相互关系
数据的物理结构:数据的逻辑结构在计算机中的储存形式
物理结构也叫储存结构
包括:顺序储存结构和链式储存结构
顺序储存结构指的是把数据储存到相邻的储存单元中
链式储存结构是将数据元素任意的存放到储存单元中,并每个数据元素用一个指针指向下一个数据元素,将他们联系到一起
集合结构:除了同属于一个集合外,没有其他不三不四的关系了
它们之间并没有其他的联系
线性结构:数据元素之间,一对一的关系
树形结构:一对多的关系
图形结构:多对多的关系
算法的五个特征
①输入:可以具有0个或多个输入
②输出:至少有一个或多个输出
③有穷性:算法在执行有限的步骤后输出结构会自动结束
④确定性:算法中的每一条指令必须有确切的含义,不能有多义性
⑤可行性:算法中的每条指令都是切实可行的,也就是通过某些指令能够得出准确的结构
算法设计的要求
①正确性:输入数据后经过算法的加工最终可以得到正确的结果
②可读性:算法的设计不单单是给电脑看的,也是给人看的,所以要通俗易懂,人能够看明白
③健壮性:就是当输入的数据不合理的时候,可以提示出错误并不给于执行
④时间效率高和存储量低:相对于同等目的的算法,当然是执行速度越快越好,要使用的内存空间越小越好了,当然这二者一般是相对的
算法效率的度量方法
抽象出算法随着输入规模的变化对应代码执行次数的对应公式
来表示效率的度量方法
大O阶:表示算法的运行效率
①.用常数1取代运行次数的所有加法常数(如8就是1)
②只保留最高阶项(如n^2+n就只保留n^2 )
③如果最高项存在且不是1,则去除这个项的系数(如3n 就是 n)
④得到的就是大0阶了