/**
 * Class for sorting algorithms, currently only MinSort.
 */
public class Sorter {

  /**
   * Sort the given array using MinSort.
   */
  public static void minSort(int[] array) {
    int n = array.length;
    for (int i = 0; i < n - 2; i++) {
      // Compute the minimum among array[i], ..., array[n-1].
      int min = array[i];
      int minIndex = i;
      for (int j = i + 1; j < n; j++) {
        if (array[j] < min) {
          min = array[j];
          minIndex = j;
        }
      }
      // Swap array[i] and array[minIndex].
      int tmp = array[i];
      array[i] = array[minIndex];
      array[minIndex] = tmp;
    }
  }

}