当前位置: 首页 > 知识库问答 >
问题:

红黑树是否可以用于最佳拟合算法?

长孙骏
2023-03-14

我知道最佳匹配算法必须在整个列表中搜索,以找到取O(n)的最佳内存块,所以我考虑使用红黑树将运行时改进为O(logN)。是否会有红黑树不适用于最佳适配的情况?如果是的话,有人能给我举个例子吗?谢谢你。

共有1个答案

邓德厚
2023-03-14

红黑色的树很好,但不是一个真正的好选择。

由于要很好地利用O(size)字节需要花费O(size)时间,因此最好使用某种finger搜索树,这样可以更快地查找小块,而花费更多的时间查找大块:https://en.wikipedia.org/wiki/finger_search_tree

此外,您可能只想为一些最小的可能大小拥有单独的免费列表。在搜索和更新搜索树时,可能会命中几个缓存行。在x86上,每个缓存行是64字节,所以一个缓存行就足以存储8个空闲列表的头指针。如果您将8个最小大小的空闲列表的头指针放在一个缓存行中,那么分配这些大小的块将会快得多。

这还允许您分配小于红黑树节点的块。

 类似资料:
  • 红黑树与AVL的比较: AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多; 红黑是用非严格的平衡来换取增删节点时候旋转次数的降低; 所以简单说,如果你的应用中,搜索的次数远远大于插入和删除,那么选择AVL,如果搜索,插入删除次数几乎差不多,应该选择RB。 红黑树详解: https://xieguanglei.github.io/blog/post/red-bl

  • 我知道Dijkstra的算法实际上是使用斐波那契堆实现的。但是,它也可以使用红色的黑树来实现,并且仍然具有O(m log n)的最坏情况运行时间吗?

  • 二叉查找树 由于红黑树本质上就是一棵二叉查找树,所以在了解红黑树之前,咱们先来看下二叉查找树。 二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 若任意结点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若任意结点的右子树不空,则右子树

  • 本文向大家介绍图解红黑树及Java进行红黑二叉树遍历的方法,包括了图解红黑树及Java进行红黑二叉树遍历的方法的使用技巧和注意事项,需要的朋友参考一下 红黑树 红黑树是一种数据结构与算法课堂上常常提到但又不会细讲的树,也是技术面试中经常被问到的树,然而无论是书上还是网上的资料,通常都比较刻板难以理解,能不能一种比较直观的方式来理解红黑树呢?本文将以图形的方式来解释红黑树的插入与删除操作。 对树结构

  • 本文向大家介绍java算法实现红黑树完整代码示例,包括了java算法实现红黑树完整代码示例的使用技巧和注意事项,需要的朋友参考一下 红黑树 定义 红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。 红黑树的另一种定义是含有红黑链接并满足下列条件的二叉查找树: 红链接均为左链接;没有任何一个结点同时和两条红链接相连;该树

  • 本文向大家介绍请问红黑树了解吗?相关面试题,主要包含被问及请问红黑树了解吗?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 参考博客https://blog.csdn.net/tanrui519521/article/details/80980135

  • 本文向大家介绍请介绍一下红黑树?相关面试题,主要包含被问及请介绍一下红黑树?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 红黑树(Red Black Tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。红黑树和AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。 它虽然是复杂的,但它的最坏情况运行时

  • 所以,我知道一般来说,在以下情况下应该使用 由于或其他可能导致减少原始数据集(RDD、DF)的操作,分区数量减少。对于在过滤大型数据集后更有效地运行操作很有用。 我也知道它比< code>repartition更便宜,因为它通过仅在必要时移动数据来减少洗牌。我的问题是如何定义< code>coalesce采用的参数(< code > idealpartionno )。我正在做一个项目,这个项目是另