Exercises 14.1-7
Show how to use an order-statistic tree to count the number of inversions (see Problem 2-4) in an array of size n in time O(n lg n).
1)建立order-statistic tree 需要O(nlgn)
2)求每个元素的rank需要O(nlgn)
3)元素i的逆序数等于 |i - rank(i)| 需要O(1)
4)将所有元素逆序数求和,需要O(n)
综上,需要 O(nlgn)的时间复杂度.
本文介绍如何利用顺序统计树(Order-Statistic Tree)高效地计算一个大小为n的数组中的逆序数,总时间复杂度为O(nlgn)。具体步骤包括:建立顺序统计树;确定每个元素的秩(rank);计算各元素的逆序数并求和。
2122

被折叠的 条评论
为什么被折叠?



