数据结构笔记(一)

数据结构

是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据

顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的

链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的

链式相对于顺序查找效率不高、但是通过指针插入、删除数据的效率高(结构处于动态中),因为数据元素的地址不连续,只需要改变指针指向即可

算法和算法分析

根据一定的条件,对一些数据进行计算,得到需要的结果。

一个优秀的算法追求两个目标:花最少的时间完成需求、占用最少的内存空间完成需求

时间复杂度分析和空间复杂度分析:有关算法时间和空间的耗费信息

算法时间复杂度

在进行算法分析时,语句的总执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间度量,记作:T(n)=O(f(n))。

一般情况下,随着n的增大,T(n)增长最慢的算法为最优算法

推导大O阶方法

  1. 用常数1取代运行时间中的所有加法常数
  2. 在修改后的运行次数函数中,只保留最高阶项
  3. 如果最高阶项存在且不是1,则去除与这个项相乘的常数

最后得到的结果就是大O阶

指数阶:O(logn)

常数阶:具有O(1)的时间复杂度

线性阶:一般含有非嵌套循环,就是随着输入规模的扩大,对应计算次数呈直线增长

平方/立方阶:一般嵌套循环属于这种时间复杂度

常用的时间复杂度所耗费的时间从小到大依次是:

O(1)

算法复杂度越低,算法越优

你可能感兴趣的:(数据结构)