Efficient Merging, Construction, and Maintenance of Evolutionary Trees

We present new techniques of efficiently merging and updating partial evolutionary trees in the so called experiment model. We show that two partial evolutionary trees for disjoint sets of species can be merged using experiments in time O(dn), where n is the size of the resulting evolutionary tree and d is its maximum degree. We prove our upper time bound for merging evolutionary trees to be asymptotically optimal. We show also that after O(n log n)-time preprocessing, a partial evolutionary tree can be maintained under a sequence of m species insertions or deletions in time O(dm log(n + m)). By applying our algorithm for merging evolutionary trees, or alternatively, our algorithm for updating evolutionary trees, we obtain an O(dn log n)-time bound on the problem of constructing an evolutionary tree of size n and maximum degree d from experiments. The classic O(n log n)-time bound on sorting in the comparison model can be seen as a very special case of this upper bound.