Related PR : #5691
The result of `TopKSelector` may be wrong when `trim()` is invoked and quiksort fallback to `Arrasys.sort()`. Because `Arrasys.sort()` is been used by mistake there.
Following test case can trigger this bug.
```
{
    int n = 10000;
    int k = 10000;
    int testIteration = 10;
    Random random = new Random(System.currentTimeMillis());
    for (int iter = 0; iter < testIteration; iter ++) {
      // target array to be sorted using TopKSelector
      List<Integer> target = new ArrayList<>();
      for (int i = 0; i < 9; i++) {
        List<Integer> sortedArray = new ArrayList();
        for (int j = 0; j < n; j++) {
          sortedArray.add(random.nextInt());
        }
        sortedArray.sort(Integer::compareTo);
        target.addAll(sortedArray);
      }

      TopKSelector<Integer> top = TopKSelector.least(k, Integer::compareTo);
      for (int value : target) {
        top.offer(value);
      }

      target.sort(Integer::compareTo);
      assertEquals(top.topK(), target.subList(0, k));
    }
  }
```
import java.math.RoundingMode;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import javax.annotation.CheckForNull;
import org.checkerframework.checker.nullness.qual.Nullable;
/**
 * An accumulator that selects the "top" {@code k} elements added to it, relative to a provided
 * comparator. "Top" can mean the greatest or the lowest elements, specified in the factory used to
 * create the {@code TopKSelector} instance.
 *
 * <p>If your input data is available as an {@link Iterable} or {@link Iterator}, prefer {@link
 * Ordering#leastOf(Iterable, int)}, which provides the same implementation with an interface
 * tailored to that use case.
 *
 * <p>This uses the same efficient implementation as {@link Ordering#leastOf(Iterable, int)},
 * offering expected O(n + k log k) performance (worst case O(n log k)) for n calls to {@link
 * #offer} and a call to {@link #topK}, with O(k) memory. In comparison, quickselect has the same
 * asymptotics but requires O(n) memory, and a {@code PriorityQueue} implementation takes O(n log
 * k). In benchmarks, this implementation performs at least as well as either implementation, and
 * degrades more gracefully for worst-case input.
 *
 * <p>The implementation does not necessarily use a <i>stable</i> sorting algorithm; when multiple
 * equivalent elements are added to it, it is undefined which will come first in the output.
 *
 * @author Louis Wasserman
 */
@GwtCompatible