此问题来自http://www.geeksforgeeks.org/construct-bst-from-given-preorder-traversa/
我可以想到下面的简单算法(类似于Java内部对TreeMap所遵循的那种)
但是我没有在谷歌或同一个链接上看到它的任何提及。我们理解它的时间复杂性将是nlog(n)。我理解它不比第二种方法更好,它是O(n)但比第一种方法更好,它是O(n ^ 2)不是吗?
答案 0 :(得分:1)
你是正确的,它比第一种方法更好,但第二种方法甚至更好,因为时间复杂度是O(n)。
如果您没有提前完成输入,但是当您准备好完整的输入时,您建议的方法会更好,那么您不必逐个添加它,包括查找每个节点的位置( LOGN)。所以对于n个节点,它将是nlog(n)