基本概念
Last updated
Last updated
数据结构
: 数据对象
在计算机中的组织方式
逻辑结构(线性/树/图)
物理存储结构 (数组 / 链表)
数据对象与一系列加载其上的操作
相关两
完成这些操作的方法叫做算法
数据类型
数据对象集
数据集合相关联的操作集
抽象:描述数据类型的方法不依赖与具体实现
与存放数据的机器无关
与数据存储的物理结构无关
与实现操作的算法和编程语言无关
放图书
随便放
插入好插入
查找很难
按字母线性放 (一对一 ,线性结构)
查找变简单 :二分查找
插入变难: 要将插入位置之后的书一个个移动,空出一个位置来插入书籍
先分类,再按字母线性放 (一对多 ,树形结构)
问题都解决了
但是分多少类合适呢?
如果 再将买过该书的人与书进行关联(多对多,图结构)
效率跟空间利用效率有关
第二个函数 比 第一个函数块!
clock()
:捕捉从程序开始运行到clock()被调用时所耗费的时间,这个时间单位是clock tick,即“时钟打点”
CLK_TCK
:机器时钟每秒所走的时钟打点数
效率跟算法的巧妙程度有关
算法:(Algorithm)
一个有限指令集
接受一些输入(有些情况下不需要输入)
产生输出
一定在有限步骤之后终止
每一条指令必须
有充分明确的目标,不可以有歧义
计算机能处理的范围之内
描述应不依赖于任何一种计算机语言以及具体的实现手段
空间复杂度S(n) -- 程序执行时占用存储单元的长度
时间复杂度T(n) -- 程序执行时耗费时间的长度
递归会爆内存
递归程序 -- 空间复杂度
时间复杂度 -- 只考虑程序乘法