@Contract(mutates = "param1")
  public static <T> void quickSort(@NotNull List<? extends T> list, @NotNull Comparator<? super T> comparator) {
    quickSort(list, comparator, 0, list.size());
  }
@Contract(mutates = "param1")
  public static <T> void quickSort(@NotNull List<? extends T> list, @NotNull Comparator<? super T> comparator)