edu.stanford.math.plex
public class PlexSort extends java.lang.Object
PlexSort class provides a sorting routine that I'd prefer
 was part of the standard libraries.| Modifier and Type | Class and Description | 
|---|---|
static class  | 
PlexSort.Comp
Instances of the  
Comp inner class are used as comparison
 closures for the sorting routine comp_sort. | 
static class  | 
PlexSort.CompL  | 
static class  | 
PlexSort.CompObj  | 
| Constructor and Description | 
|---|
PlexSort()  | 
| Modifier and Type | Method and Description | 
|---|---|
static void | 
comp_sort(int[] x,
         int start,
         int len,
         PlexSort.Comp comp)
Sort a subarray of an int[] using a comparison function. 
 | 
static void | 
comp_sort(long[] x,
         int start,
         int len,
         PlexSort.CompL comp)
Same as comp_sort(int[], int, int, Comp), but for arrays of long. 
 | 
static void | 
comp_sort(java.lang.Object[] x,
         int start,
         int len,
         PlexSort.CompObj comp)
Same as comp_sort(int[], int, int, Comp), but for arrays of Object. 
 | 
static void | 
reverse_sort(int[] indices,
            double[] vals)  | 
static void | 
reverse_sort(int[] indices,
            int[] vals)  | 
static void | 
sort(int[] indices,
    double[] vals)  | 
static void | 
sort(int[] indices,
    double[] vals,
    boolean reverse)  | 
static void | 
sort(int[] indices,
    int[] vals)  | 
static void | 
sort(int[] indices,
    int[] vals,
    boolean reverse)  | 
static void | 
sort(int[] indices,
    int start,
    int end,
    double[] vals,
    boolean reverse)  | 
static void | 
sort(int[] indices,
    int start,
    int end,
    int[] vals,
    boolean reverse)
Take an array of indices and sort them by the values in an array. 
 | 
public static void comp_sort(int[] x,
             int start,
             int len,
             PlexSort.Comp comp)
This code is copied with trivial alterations from "Engineering a Sort Function", by Bentley and McIlroy. I have no idea why there isn't something like this already available in the class java.util.Arrays -- apparently the sort routines in that class are based on the same paper, but support for a comparison function has been removed.
x - int[] to sort.start - Beginning of subarray to sort.len - Length of the subarray of x to sort.comp - PlexSort.Comp instance to use in sorting.public static void comp_sort(long[] x,
             int start,
             int len,
             PlexSort.CompL comp)
public static void comp_sort(java.lang.Object[] x,
             int start,
             int len,
             PlexSort.CompObj comp)
public static void sort(int[] indices,
        int start,
        int end,
        int[] vals,
        boolean reverse)
indices - An int[] of indices to be sorted.start - The first entry in indices to be sort.end - The first entry in indices to not be sorted.vals - An array of integer values against which to sort indices.reverse - A boolean which, if true, causes the indices to be
 sorted into decreasing order.public static void sort(int[] indices,
        int start,
        int end,
        double[] vals,
        boolean reverse)
public static void sort(int[] indices,
        int[] vals,
        boolean reverse)
public static void sort(int[] indices,
        int[] vals)
public static void reverse_sort(int[] indices,
                int[] vals)
public static void sort(int[] indices,
        double[] vals,
        boolean reverse)
public static void sort(int[] indices,
        double[] vals)
public static void reverse_sort(int[] indices,
                double[] vals)