2018-08-13

数据结构 

二分查找

1、使用二分查找需要满足的条件:

(1) 存储在数组中

(2) 有序排列

所以如果是用链表存储的,不能使用二分查找。

2、查找长度:查找算法的整体查找效率主要取决于比较操作的次数。

成功查找长度:

失败查找长度:

不足:

平均查找长度:

Fibonacci  查找:

https://blog.csdn.net/yunzhongguwu005/article/details/9341761/

比较

二分查找(版本2):


二分查找(版本3):

排序和下界

有序性:

无序的  可以优化到:(o(n)):

有序 的 优化到:(o(log(n)):

排序及其分类 :

内部排序:相对的规模的相对较小,内存能够容纳:

外部排序: 必须借助外部,甚至分布式储存器;

下界

最差情况下最优计算成本;

比较树:

算法所有的可能执行的过程都会出现在树形结构中

节点对应着比较:

分支对应两种比对结果的执行方向

估计下界

例如 CBA 算法  假设其 中算法A的是树状结构的,运行一次所需要的时间,取决于叶节点到根节点之间的距离。(叶节点的深度),算法A 的最差的 运行时间为 树种中所有节点的 最大深度(称为该树的深度)。

比较大小的同时,还可以比较大小 :出现了三叉树

线性表 顺序表  链表


2018-08-13_第1张图片

第三章 列表

物理地址与逻辑地址次序完全对应:可以通过秩去访问元素  称为  “寻秩访问”。

本章介绍的是 逻辑有次序     但是物理地址是任意的。

不同的根源是 存储的方式不同;

静态:size()  get()  

动态:可以修改 数据 insert()   remove(); (插入或者删除一个元素  不得不移动O(n)元素),静态根据 秩寻找达到极致;

判别:各元素物理地址连续的约定  此所谓的“静态存储”。

列表

结构要求逻辑是连续的,但是对物理地址没有要求 这是所谓的“动态存储”策略

你可能感兴趣的:(2018-08-13)