package junit.runner; | |
import java.util.*; | |
import junit.runner.*; | |
/** | |
* A custom quick sort with support to customize the swap behaviour. | |
* NOTICE: We can't use the the sorting support from the JDK 1.2 collection | |
* classes because of the JDK 1.1.7 compatibility. | |
*/ | |
public class Sorter { | |
public static interface Swapper { | |
public void swap(Vector values, int left, int right); | |
} | |
public static void sortStrings(Vector values , int left, int right, Swapper swapper) { | |
int oleft= left; | |
int oright= right; | |
String mid= (String)values.elementAt((left + right) / 2); | |
do { | |
while (((String)(values.elementAt(left))).compareTo(mid) < 0) | |
left++; | |
while (mid.compareTo((String)(values.elementAt(right))) < 0) | |
right--; | |
if (left <= right) { | |
swapper.swap(values, left, right); | |
left++; | |
right--; | |
} | |
} while (left <= right); | |
if (oleft < right) | |
sortStrings(values, oleft, right, swapper); | |
if (left < oright) | |
sortStrings(values, left, oright, swapper); | |
} | |
} |