查找一
来源:互联网 发布:自制单片机最小系统 编辑:程序博客网 时间:2024/05/16 16:21
基础查找:
顺序查找,从头遍历到尾,或从尾到头。
序表查找:
折半查找:
min = (low + hign) / 2 = low + (hign - low) / 2
插值查找:
min = low + (hign - low) / ( (key - a[low]) / (a[hign] - a[low]) )
仔细观察 折半 与 插值 公式区别只在于 除于2 和 除于 ( (key - a[low]) / (a[hign] - a[low]) )
( (key - a[low]) / (a[hign] - a[low]) ) 的意思是 key值 在序列中 大概 所占位置比率。
所有 插值查找 比较适合于 比较均匀的序列中查找,不适合值差距较大的序列如{1,2,10000,10001}
引深 斐波那契查找
二、线性索引查找
线性索引分成两种:稠密索引和稀疏索引(分块)。
稠密索引
一个索引项(位于索引表)对应数据表中一个对象的索引结构。当对象在外存中按加入顺序存放而不是按关键码有序存放时必须采用稠密索引结构,这时的索引结构叫做索引非顺序结构。
稀疏索引(分块)
稠密索引的索引项与数据集记录个数同,空间代价较大。为了减少索引项个数。我们可以对数据集进行分块,分块有序
分块有序 就是把数据集分成若干块, 保证 块内无序,块间有序。
分块索引的索引项结构分三个:
1、最大关键码。即每一块中最大关键字。标识块间边界
2、块中的记录个数,用于循环。
3、用于指向块首数据元素的指针。便于遍历。
倒排索引
对象关键码key
对象的存储地址addr
假设 有两篇文章
1、Books and friends should be few but good.
2、A good book is a good friend.
次关键码:英文单词
记录号表:文章编号
- 查找一
- 查找一
- 查找(一)二分查找
- 查找一章总结
- 查找一:红黑树讲解
- 数据结构之查找<一>
- 查找算法初学一
- linux常用命令一------查找
- [数据结构]查找(一)
- 一、二叉查找树
- 查找数字(一)
- 查找(一)
- 数据结构 查找 动态查找表一
- 查找(一)—— 二分法查找
- 数据结构之查找一静态查找
- 数据结构之查找一静态查找
- Java查找算法(一): 二分法查找
- 树查找(一)二叉查找树
- JS版俄罗斯方块第二版
- 牛B的代码--97年Mekka ’97 4K Intro比赛
- 最短路径--Dijkstra算法
- 后缀表达式笔记
- 最短路径--Floyd算法
- 查找一
- 查找二--二叉排序树
- 排序一--基础排序
- 排序二--堆排序
- 详解公钥、私钥、数字证书的概念
- Python小实例第一天
- SSL-HTTPS与Java-Tomcat配置
- HTTPS的Socket实现代码
- 负数的二进制表示方法