一、第七章内容小结 1. 查找的基本概念 2. 线性表的查找 ① 顺序查找:从表的一端开始依次将记录的关键字和给定值进行比较,某记录的关键字和定值相等则查找成功;反之,扫描整个表未找到相等记录,则查找失败。顺序查找适用于线性表的顺序存储结构和链式存储结构。 2-1基于顺序表的顺序查找算法: 1 in ...
分类:
其他好文 时间:
2020-06-27 16:03:50
阅读次数:
78
1. 平均比较次数的计算 题目 有个长度为12的无重复有序表,按折半查找法进行查找,在表内各元素等概率情况下,查找成功所需的平均比较(三元比较)的次数为() 解题思路 表内各元素等概率的情况下,不需要进行加权平均,算术平均就行了。计算出每个元素查找成功所需的比较次数,然后除以数组的长度。 1个元素只 ...
分类:
编程语言 时间:
2020-06-27 11:47:23
阅读次数:
72
顺序查找 监视哨的顺序查找 因为每次循环都需要对是否越界,即是否小于n做判断。事实上,还可以有更好一点的办法,设置一个哨兵,可以解决不需要每次让i与n作比较。 折半查找(二分查找) 二分查找(又称为折半查找)是在有序序列中查找比较多的查找算法,基本思路:设有一个从小到大的序列,取中间的元素m进行比较 ...
分类:
其他好文 时间:
2020-06-27 09:20:15
阅读次数:
58
第7章 查找 一、内容小结 (1)基本概念: ①查找表:是由同一类型的数据元素(或记录)构成的集合 (eg.线性表、树表、散列表); ②关键字:是数据元素(或记录)中某个数据项的值--》作为一种"标识"; ③查找:根据给定的值,在查找表中确定一个其关键字等于给定值得记录或数据元素; 查找成功即返回该 ...
分类:
其他好文 时间:
2020-06-27 00:11:46
阅读次数:
65
导入头文件 编写代码过程中,涉及动态内存分配等常用的函数,需要引入如下头文件 #include<stdio.h> #include<stdlib.h> 结构体定义 // 定义二分搜索树结构体 typedef struct Node { int data; struct Node * left; st ...
分类:
编程语言 时间:
2020-06-26 18:43:11
阅读次数:
77
一、本章的思维导图 二、总结 顺序查找本来以前以为自己打的代码就已经很漂亮了,根本没有再关注还可以再怎么优化它,本章学习到了一个监视哨的概念虽然这个算法的时间复杂度还是O(n)级别的,但是却减少了一半的时间开销,要是数据量很大的情况下还是很客观的,所以还是一个很棒的点。折半查找,可能以前或多或少也有 ...
分类:
其他好文 时间:
2020-06-26 14:48:58
阅读次数:
48
一、基本概念和专业术语: (1)查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。 (2)查找算法分类: 1)静态查找和动态查找; 注:静态或者动态都是针对查找表而言的。动态表指查找表中有删除和插入操作的表。 常见静态表:顺序查找、二分查找、插值查找、索引查找等 常见 ...
分类:
其他好文 时间:
2020-06-23 21:32:01
阅读次数:
165
第七章的内容是查找,总的来说整个章节的学习思路很清晰,分为线性表、树表、随机表的查找三部分。 关于线性表的查找,我印象最深刻的内容就是设有“监视哨”的顺序查找方法和折半查找方法。数组首元素存储查找的key数据,保证从后往前遍历到a[0]时能找到key并退出循环,这就不需要计数器来辅助了,这种思路确实 ...
分类:
其他好文 时间:
2020-06-23 13:06:02
阅读次数:
56
索引概述MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面的示意图所示。左边是数据表,一共有两开七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)
分类:
数据库 时间:
2020-06-23 10:34:02
阅读次数:
68
二分法查找: 第一:二分法中查找建立在排序的基础之上。 第二:二分法查找效率要高于“一个挨着一个”的这种查找方式。 第三:二分查找法原理? 10(0下标) 23 56 89 100 111 222 235 500 600 目标:找出600下标 (0 + 9) / 2 --> 4(中间元素的下标) a ...
分类:
编程语言 时间:
2020-06-21 17:59:11
阅读次数:
62