数据结构
二分查找
1、使用二分查找需要满足的条件:
(1) 存储在数组中
(2) 有序排列
所以如果是用链表存储的,不能使用二分查找。
2、查找长度:查找算法的整体查找效率主要取决于比较操作的次数。
成功查找长度:
失败查找长度:
不足:
平均查找长度:
Fibonacci 查找:
https://blog.csdn.net/yunzhongguwu005/article/details/9341761/
比较
二分查找(版本2):
二分查找(版本3):
排序和下界
有序性:
无序的 可以优化到:(o(n)):
有序 的 优化到:(o(log(n)):
排序及其分类 :
内部排序:相对的规模的相对较小,内存能够容纳:
外部排序: 必须借助外部,甚至分布式储存器;
下界
最差情况下最优计算成本;
比较树:
算法所有的可能执行的过程都会出现在树形结构中
节点对应着比较:
分支对应两种比对结果的执行方向
估计下界
例如 CBA 算法 假设其 中算法A的是树状结构的,运行一次所需要的时间,取决于叶节点到根节点之间的距离。(叶节点的深度),算法A 的最差的 运行时间为 树种中所有节点的 最大深度(称为该树的深度)。
比较大小的同时,还可以比较大小 :出现了三叉树
线性表 顺序表 链表
第三章 列表
物理地址与逻辑地址次序完全对应:可以通过秩去访问元素 称为 “寻秩访问”。
本章介绍的是 逻辑有次序 但是物理地址是任意的。
不同的根源是 存储的方式不同;
静态:size() get()
动态:可以修改 数据 insert() remove(); (插入或者删除一个元素 不得不移动O(n)元素),静态根据 秩寻找达到极致;
判别:各元素物理地址连续的约定 此所谓的“静态存储”。
列表
结构要求逻辑是连续的,但是对物理地址没有要求 这是所谓的“动态存储”策略
网友评论