折半查找
又称二分查找,适用于有序的顺序表
基本思想:将值与中间的数值相比,若相等则查找成功,返回该元素的存储位置,
若不等在缩小的范围继续查找
缩小范围:有low指针,指向下界就是小的数,high指针指向上界就是大的数,mid指向中间的数
min=(low+high)/2(向下取整)
如果low>high了就是查找失败了
分块查找
树形查找
二叉排序树
左子树节点值<根节点值<右子树节点值,所以对二叉排序树可以进行中序遍历
二叉排序树的定义
二叉排序树的查找
若树非空,目标值与根节点的值比较,若相等,则查找成功。
若小于根节点,则在左子树上查找,否则在右子树上查找。
查找成功,返回节点指针,查找失败返回NULL
二叉排序树的插入
是动态树,不是一次生成的,当书中不存在关键字值等于给给定值的节点时再插入。
二叉排序树的构造
从一棵空树出发,依次输入元素,将他们插入二叉排序树中的合适位置。
二叉排序树的删除
看书P272
平衡二叉树的删除
红黑树
口诀:左根右,根页黑,不红红,黑路同
黑高:从某个节点出发(不包含这个节点)到达某个节点(包含这个节点)的路径上的黑节点总数
性质:
红黑树的插入
EG:情况1
情况2
情况三:
这个插入22要好好体会下,“爷变新节点” 它不是根节点就看它是否破坏了“不红红” ,是根节点就变成黑色
当要插入的值,红黑树中有了之后,仍然可以插入