利用分治求一次逆序数,然后每次把第一个元素放到末尾,设该交换元素的值为x,设上一次求得的逆序数为y,那么此时的逆序数等于y - x + (n - x - 1),减去x是因为x作为第一个元素,其后共有x个元素小于x,移动x会导致逆序数减少x个,而加上 (n - x - 1) 是因为将x移动到末尾,其前面(n - 1)个元素中会有(n - x - 1)个元素大于x. 此题的复杂度在于求第一次逆序数O(nlgn),后面每次移动元素求更新后的逆序数时间是O(1),因此总的复杂度为(nlgn). AC代码…