2020/8/31
构成排序二叉树需满足:做子树比根节点小,根节点比右子树节点小。
哈希表法查找最快
顺序查找法适用于存储结构为顺序或链接存储的线性表
TRIE树,单词查找树,是一种哈希树的变种,典型应用是用于统计,排序和保存大量的字符串,所以经常被搜索引擎系统用于文本词频统计。优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较。
分块查找的平均长度不仅与索引表的长度有关,而且与快的长度有关。
平均查找速度从慢至快排序:顺序、分块、折半、哈希

存储在顺序介质如磁带上,无法随机读写自然无法二分与分块
kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和 m,判断f是否在O中出现,如果出现则返回出现的位置。常规方法是遍历O的每一个位置,然后从该位置开始和f进行匹配,但是这种方法的复杂度是 O(nm)。kmp算法通过一个O(m)的预处理,使匹配的复杂度降为O(n+m)。
二分查找首先要求数据是有序的,同时要求能随机访问数据元素,有序数组可以,链表不行,
二分查找因为每次都是从中间点开始查找,所以最坏情况是目标元素存在于最边缘的情况,最坏为O(LogN)
回溯算法是一种试探法,基本思路是:从一条路往前走,能进则进,不能进则退回来,换一条路再试,符合辛弃疾《青玉案》的笔意。
利用二分查找法查找数据元素的最多笔记哦啊次数不超过log2n+1
2 AVL树是最先发明的自平衡二叉查 找树。在AVL树中任何节点的两个儿子子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis,他们在 1962 年的论文 "An algorithm for the organization of information" 中发表了它。
引入二叉树的目的是为了提高二叉树的搜索的效率,减少树的平均搜索长度.为此,就必须每向二叉树插入一个结点时调整树的结构,使得二叉树搜索保持平衡,从而可能降低树的高度,减少的平均树的搜索长度.
AVL树的定义:
一棵AVL树满足以下的条件:
1>它的左子树和右子树都是AVL树
2>左子树和右子树的高度差不能超过1
从条件1可能看出是个递归定义,如GNU一样.
红黑树是平衡二叉树,也就是左右子树是平衡的,高度大概相等。等价于一块完全二叉树,查找的时间复杂度是树的高度,为logn
二叉查找树的查询速度取决于树的深度,相同结点树深度最小的是平衡二叉树,所以查找效率最高。
深度优先搜索要借助栈,广度优先搜索要借助队列
顺序查找的平均时间是n/2
静态查找:仅做查询和检索操作的查找表
动态查找

浙公网安备 33010602011771号