关于“堆”结构来构想“反应堆”

原创
2018/10/11 11:23
阅读数 28

关于堆的理解: 堆的基础设计是,上面的数据一定总是比下面的数据小,是一个看似有序的二叉树结构,基于此种数据结构,可以实现比较快的插入和查找,从而实现logN的效率结构,在基于时间复杂度和空间复杂度上来说都是优良的结果。 关于“反应堆”的构想: 目前想到的是适用于优化查询的实现。首先将一批很常用的数据结构进行构建堆操作,然后每个堆的元素包括 struct Heap{ int val; // 具体的数值 int snum; // 具体的查询次数 Heap *parent; // 父节点 Heap *lchild; // 左孩子节点 Heap *rchild; // 右孩子节点 } 首先要构建的堆结构是一种“反”的堆结构,以snum 查询次数为值,进行堆结构的调整,每一次的查询过后,都会将堆查询节点的snum加1,然后调整堆结构。 特别之处:这里构建的“反应堆”是一种逆向的反应堆结构,即最大的snum数据在最上面,也就是说,最常用的查询在最上面,随着查询次数的不过增加,堆的结构越来越符合实际的情况,就会出现越靠近树根的位置,查询的频率就越大,极大的提高了查询的效率,并且也很符合业务需求。

拓展知识: 经过和同事讨论,可以使用 堆 结构来压缩,次数的压缩暂时不太清楚压缩指的是那个方面,目前工程采用的是:laya的压缩技术可能采用的是堆机构。

结尾: 此处就是我设想的“反应堆”,提高程序的性能问题。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部