一、线性表的查找
顺序表类似于数组是一段连续的空间,通过R[i]的下标来移动。
可以从头开始找,也可以从尾开始找。
通过添加哨兵的形式来改进。
用来存放作为哨兵的辅助空间。
顺序查找的缺点,时间太久,有点空间复杂度低。
二、折半查找法
mid向下取整。high<low是查找算法的结束条件。
也可以用递归实现。
若不是顺序存贮结构,则无法查找。(顺序存贮结构,插入和删除不是很方便,每次都需要移动其他不相关的元素)
分块查找也叫做索引顺序表的查找。
树的查找
插入的元素一定在叶子节点上。
二叉排序树的形态不一样,则查找效率也不一样。
树的高度越低则查找效率越好。
为了让二叉树更加平衡化,提高查找效率则构建平衡二叉树。
平衡旋转,结果如下
例如:
记住永远都是中间大的变成新的根节点,然后比它小的在左子树,比它大的在右子树。