Chapter 5 查找
Chapter 5 查找

1- 顺序查找法 O(n)

2- 折半查找O(logn) :二分查找
要求:关键字有序
过程:
判定树:叶子结点为方框,代表不成功的结点。
3- 分块查找:索引顺序查找

ASL = ASL1+ASL2
4- 二叉排序树(BST)
特点:左<根<右
5- 平衡二叉树(AVL)
6- B-树(B数)
特点:
1 分支数 = 关键字数 + 1,最大分支数就是B树的阶数
2 根结点至少有1个关键字,两个分支
其余结点至少有
个分支,
-1个关键字
3 结点内关键字互不相等按从小到大顺序排列
4 叶结点处于同一层,是查找失败到达的位置(计算结点数时要算上)
5 下层结点的关键字取值在上层所划分区间内
基本操作:
1 查找:多路查找
2 插入:可能引起拆分,多次拆分叫连锁反应
3 删除:直接删,不够找兄弟借,再不够合并
7- B+树
B-树和B+树的区别:(先B+,后B-)
1 B+树:n个关键字n个分支
B-树:n个关键字n+1个分支
2 关键字个数:
≤n≤m
-1≤n≤m-1
根结点个数: 2≤n≤m 1≤n≤m-1
3 B+树:非叶子结点只是个索引,不包含关键字对应记录的存储地址
B-树:每个关键字对应一个记录的存储地址
B+树:叶子结点包含信息和全部关键字,叶子结点引出的指针指向记录
B+树:有一个指针指向关键字最小的叶子结点,所有叶子结点链接成一个线性链表
8- 散列表(哈希表)
H(key) ---- 哈希地址
发生冲突----同义词
Hi(key)----解决冲突后的地址
查找成功的ASL1 = 每个关键字的比较次数
查找失败的ASL2 = 由该地址开始到空地址为止进行比较操作的次数
常见Hash函数构造方法:除留取余法
常见解决冲突方法:
1 开放定址法:包括线性探查法等…
2 链地址法:
性能分析:α(装填因子) = 关键字个数/表长
Hash表的ASL与α有关,与关键字无关。
注:
1 顺序表查找优点是顺序/链式均可,缺点是n较大时,ASL大,效率低
2 折半查找适合顺序,不适合链式,且要求有序
Chapter 5 查找的更多相关文章
- Chapter 8(查找)
1.二分查找和插值查找 //************************Search.h*********************************** #ifndef SEARCH_H # ...
- 【ASP.NET Identity系列教程(一)】ASP.NET Identity入门
注:本文是[ASP.NET Identity系列教程]的第一篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...
- ASP.NET Identity 一 (转载)
来源:http://www.cnblogs.com/r01cn/p/5194257.html 注:本文是[ASP.NET Identity系列教程]的第一篇.本系列教程详细.完整.深入地介绍了微软的A ...
- ASP.NET Identity系列教程-2【Identity入门】
https://www.cnblogs.com/r01cn/p/5177708.html13 Identity入门 Identity is a new API from Microsoft to ma ...
- Chapter 3: Connector(连接器)
一.概述 Tomcat或者称之为Catalina(开发名称),可以简化为两个主要的模块,如下图: 多个Connector关联一个Container.之所以需要多个Connector,是为了处理多种协议 ...
- Chapter Schema
Chapter Schema Schema是XF的核心,每一个读写方法都有一个相关联的Schema.方法首先解析Schema,然后再根据Schema的配置的执行. 那Schema是什么呢?Schema ...
- Chapter 1 Securing Your Server and Network(9):使用Kerberos用于身份验证
原文:Chapter 1 Securing Your Server and Network(9):使用Kerberos用于身份验证 原文出处:http://blog.csdn.net/dba_huan ...
- Linux - 在当前系统内查找信息的方法
查找文本 使用grep命令 grep命令 - 示例 grep命令 - 正则表达式 grep命令 - 统计匹配字符串的行数 grep命令 - 搜索多个单词 结合正则表达式使用grep命令 注意:在搜索指 ...
- 《Linux内核设计与实现》Chapter 18 读书笔记
<Linux内核设计与实现>Chapter 18 读书笔记 一.准备开始 一个bug 一个藏匿bug的内核版本 知道这个bug最早出现在哪个内核版本中. 相关内核代码的知识和运气 想要成功 ...
随机推荐
- JS对象 返回星期方法 getDay() 返回星期,返回的是0-6的数字,0 表示星期天。如果要返回相对应“星期”,通过数组完成
返回星期方法 getDay() 返回星期,返回的是0-6的数字,0 表示星期天.如果要返回相对应"星期",通过数组完成,代码如下: <script type="te ...
- 随笔记录 grub引导故障修复 2019.8.7
系统备份: [root@localhost ~]# mkdir /abc [root@localhost ~]# mount /dev/sdb1 /abc [root@localhost ~]# dd ...
- 【CSP-S/J 2019】初赛注意事项
UPD:10-25-13:33 正式成绩出了,省里500多名应该进了吧... UPD:10-20-10:07 现在又很慌啊,怎么感觉82又一点都不稳啊... 然后现在又不太想写文化课作业...我是不是 ...
- RAKsmart服务器受消费者青睐的原因
随着互联网的快速发展,网站建设变得越来越重要,现在很多做外贸网站的都会选择美国服务器来建设网站,近年来RAKsmart服务器受到广大站长的欢迎,那RAKsmart服务器受消费者青睐的关键是什么呢. 1 ...
- JS去重算法
1.遍历数组法 它是最简单的数组去重方法(indexOf方法) 实现思路:新建一个数组,遍历去要重的数组,当值不在新数组的时候(indexOf为-1)就加入该新数组中: var arr=[2,8,5, ...
- 【JZOJ4616】二进制的世界
description analysis \(DP\),这是\(Claris\)神仙的题-? 既然是\(2^{16}\)可以拆成两个\(2^8\)的位运算 照着打就行了 code #include&l ...
- js对象 事件
对象 创建 var myObject = {};/* 声明对象字面变量*/ 添加值myObject.name="Jener";myObject.age=25; 代码格式 ...
- Android问题集锦An error occurred while automatically activating bundle com.android.ide.eclipse.adt .
这是Eclipse的问题,重启之后问题依旧. 在坛子里找到这个办法,果然好用. 命令行到eclipse路径运行:eclipse.exe -clean
- python模块(转自Yuan先生)
模块&包(****) 模块(modue)的概念: 在计算机程序的开 ...
- error LNK1104: 无法打开文件“C:\Users\Administrator\Desktop\....\\xxxx.exe”
1.错误原因:项目在在打开前已经打开了win32里面的程序,并且运行. 解决方法:关闭直接在win32中运行的程序,再点击调试 2.暂时不知道原因,打开程序还会报无权限创建可执行文件.如下图所示 解 ...