我对javascript中的数据结构是陌生的,并且试图了解如何弄清楚是否应该使用BST解决特定问题。使用BST应该解决什么样的问题。
答案 0 :(得分:1)
用于许多不断输入/离开数据的搜索应用程序中,例如许多语言库中的地图和set对象。它支持插入和删除操作,并按排序顺序保持数据,并且是诸如红黑树和AVL树之类的数据结构的基础
例如,您想在Binary搜索树中找到最大的数字,您从根节点开始,并且始终搜索正确的子树,直到到达叶节点。 BST上搜索操作的时间复杂度平均为O(log N),这意味着,如果将数据数量从10个增加到1百万个,则等待时间仅从4个增加到20个,因此非常省时。搜寻并尝试所有可能的方法。多亏了m.raynal,我忘了说O(N)最坏情况下的操作时间复杂度
您可以找到并解决有关二进制搜索算法和BST数据结构的一些问题,以便在CodeForces
中更好地理解