/**
   * Crea una riga della tabella sull'output out, per sequenze di genere kind, eseguendo tutti gli
   * algoritmi algorithms, su un array di lunghezza len
   */
  static void runAllAlgorithms(
      EnumSet<Algorithm> algorithms, SequenceKind kind, PrintWriter out, int len) {
    int maxValue = (kind == SequenceKind.REPEATED_VALUES) ? len / 3 : 9 * len / 10;
    int[] array = naturalRandomArray(len, maxValue);
    if (kind == SequenceKind.ALMOST_SORTED) {
      Arrays.sort(array);
      swap(array, len / 3, 2 * len / 3);
    }

    out.printf("%6d;", len);
    System.out.println(len);
    for (Algorithm algo : algorithms) {
      System.out.println(algo.toString());
      int[] arrayCopy = Arrays.copyOf(array, array.length);
      double time = executionTime(algo, arrayCopy);
      out.printf("%9.2f;", time);
    }
    out.println();
    System.out.println();
  }