jmud-0.11/
jmud-0.11/bin/
jmud-0.11/doc/
jmud-0.11/rec/
jmud-0.11/rec/mun/
jmud-0.11/rec/mun/grecia/
jmud-0.11/rec/mun/gunnar/
jmud-0.11/rec/qua/
jmud-0.11/src/bool/
jmud-0.11/src/clone/
jmud-0.11/src/integer/
jmud-0.11/src/misc/
jmud-0.11/src/string/
jmud-0.11/src/util/bit/
jmud-0.11/src/util/color/
jmud-0.11/src/util/file/
jmud-0.11/src/util/jgp/adaptor/
jmud-0.11/src/util/jgp/algorithm/
jmud-0.11/src/util/jgp/container/
jmud-0.11/src/util/jgp/functor/
jmud-0.11/src/util/jgp/interfaces/
jmud-0.11/src/util/jgp/predicate/
jmud-0.11/src/util/log/
jmud-0.11/src/util/state/
jmud-0.11/trash/
package util.nice;

public class Sorter {
  
  public static void swap(QuickSortable v, int i, int j) {
    Niceable tmp = v.getElementAt(i);
    v.setElementAt(i, v.getElementAt(j));
    v.setElementAt(j, tmp);
  }

  public static void quickSort(QuickSortable v, int first, int last) {
    if (first >= last)
      return;

    int i = first;
    int j = last;
    Niceable mid = v.getElementAt(first);

    do 
      {
	while (v.getElementAt(i).lessThan(mid))
	  ++i;
	while (mid.lessThan(v.getElementAt(j)))
	  --j;
	if (i <= j)
	  swap(v, i++, j--);
      }
    while (i <= j);
    quickSort(v, first, j);
    quickSort(v, i, last);
  }

  public static void quickSort(QuickSortable v) {
    quickSort(v, 0, v.getSize() - 1);
  }
}