二叉树
- 在讲四叉树之前先讲一下二叉树
- 对于一个一维数组,想查找和储存某个元素,时间复杂度最低的方法是二叉查找树,是O(logn)的时间复杂度
- 可以通过目标值和树节点值,选择二叉树的其中一个分支,一直遍历到叶子节点,找到目标位置
- 但是二叉树只支持一维数组,扩展到二维则要用到二叉树的高维变体–>四叉树
四叉树
- 地图上的点有X,Y坐标的二维属性
- 相对地图上的点进行查询和修改信息,要借助四叉树
- 四叉树适合对有二维属性的数据进行查询&存储
- 将当前地图递归的分成四份
- 和二叉树一样,不是所有的叶子都存在,即满二叉树和非满二叉树
- 满二叉树深度固定,数据全部存在最底层的叶子节点,这样有利于查找,但是很多叶子节点不储存数据,浪费空间。就要用非满二叉树
- 可以为每个节点设置容量信息,如果节点内的内容超过节点容量,才会增加新的叶子节点,分裂当前节点数据
- 同理,扩展到三维是2^3–>八叉树