joinAnnotated :: Semigroup e => Annotated e (Annotated e a) -> Annotated e a
distAnnotated :: Semigroup e => (Annotated e a, Annotated e b) -> Annotated e (a, b)distAnnotated (x :# m, y :# n) = (x, y) :# m <&
是否有一个算法,给定一个排序的数组,将所有的第一个唯一元素交换到数组的开头,把重复的元素交换到末尾,同时对唯一的子数组和重复的子数组保持稳定,并且运行在O(n)交换(最好是一次遍历)中?下一个唯一元素将在当前唯一子数组结束后与该元素交换: if len(A) <= 1: i = 0
for j in,以一次方式运行(O(n)也是如此),并且对于唯一的子数组是稳定的,但是这不满足要求,因为它对重复子数组进行了置乱