Class Sort


  • public class Sort
    extends java.lang.Object
    A quick sort algorithm to sort Vectors or arrays. Provides sort and binary search capabilities.

    This all goes away in JDK 1.2.

    Version:
    1.4, 11 June, 1997
    Author:
    James Gosling, Kevin A. Smith, Derrick Oswald
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static int bsearch​(java.util.Vector vector, Ordered ref)
      Binary search for an object
      static int bsearch​(java.util.Vector vector, Ordered ref, int lo, int hi)
      Binary search for an object
      static int bsearch​(Ordered[] array, Ordered ref)
      Binary search for an object
      static int bsearch​(Ordered[] array, Ordered ref, int lo, int hi)
      Binary search for an object
      static int bsearch​(Sortable set, Ordered ref)
      Binary search for an object
      static int bsearch​(Sortable set, Ordered ref, int lo, int hi)
      Binary search for an object
      static void QuickSort​(java.lang.String[] a)
      This is a string version of C.A.R Hoare's Quick Sort algorithm.
      static void QuickSort​(java.lang.String[] a, int lo0, int hi0)
      This is a string version of C.A.R Hoare's Quick Sort algorithm.
      static java.lang.Object[] QuickSort​(java.util.Hashtable h)
      Sort a Hashtable.
      static void QuickSort​(java.util.Vector v)
      This is a generic version of C.A.R Hoare's Quick Sort algorithm.
      static void QuickSort​(java.util.Vector v, int lo0, int hi0)
      This is a generic version of C.A.R Hoare's Quick Sort algorithm.
      static void QuickSort​(Ordered[] a)
      This is a generic version of C.A.R Hoare's Quick Sort algorithm.
      static void QuickSort​(Ordered[] a, int lo0, int hi0)
      This is a generic version of C.A.R Hoare's Quick Sort algorithm.
      static void QuickSort​(Sortable sortable)
      This is a generic version of C.A.R Hoare's Quick Sort algorithm.
      static void QuickSort​(Sortable sortable, int lo0, int hi0)
      This is a generic version of C.A.R Hoare's Quick Sort algorithm.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • QuickSort

        public static void QuickSort​(java.util.Vector v)
                              throws java.lang.ClassCastException
        This is a generic version of C.A.R Hoare's Quick Sort algorithm. This will handle vectors that are already sorted, and vectors with duplicate keys. Equivalent to:
         QuickSort (v, 0, v.size () - 1);
         
        Parameters:
        v - A Vector of Ordered items.
        Throws:
        java.lang.ClassCastException - If the vector contains objects that are not Ordered.
      • QuickSort

        public static void QuickSort​(java.util.Vector v,
                                     int lo0,
                                     int hi0)
                              throws java.lang.ClassCastException
        This is a generic version of C.A.R Hoare's Quick Sort algorithm. This will handle vectors that are already sorted, and vectors with duplicate keys.

        If you think of a one dimensional vector as going from the lowest index on the left to the highest index on the right then the parameters to this function are lowest index or left and highest index or right.

        Parameters:
        v - A Vector of Ordered items.
        lo0 - Left boundary of vector partition.
        hi0 - Right boundary of vector partition.
        Throws:
        java.lang.ClassCastException - If the vector contains objects that are not Ordered.
      • QuickSort

        public static void QuickSort​(Ordered[] a)
        This is a generic version of C.A.R Hoare's Quick Sort algorithm. This will handle arrays that are already sorted, and arrays with duplicate keys.

        Equivalent to:

         QuickSort (a, 0, a.length - 1);
         
        Parameters:
        a - An array of Ordered items.
      • QuickSort

        public static void QuickSort​(Ordered[] a,
                                     int lo0,
                                     int hi0)
        This is a generic version of C.A.R Hoare's Quick Sort algorithm. This will handle arrays that are already sorted, and arrays with duplicate keys.

        If you think of a one dimensional array as going from the lowest index on the left to the highest index on the right then the parameters to this function are lowest index or left and highest index or right.

        Parameters:
        a - An array of Ordered items.
        lo0 - Left boundary of array partition.
        hi0 - Right boundary of array partition.
      • QuickSort

        public static void QuickSort​(java.lang.String[] a)
        This is a string version of C.A.R Hoare's Quick Sort algorithm. This will handle arrays that are already sorted, and arrays with duplicate keys.

        Equivalent to:

         QuickSort (a, 0, a.length - 1);
         
        Parameters:
        a - An array of String items.
      • QuickSort

        public static void QuickSort​(java.lang.String[] a,
                                     int lo0,
                                     int hi0)
        This is a string version of C.A.R Hoare's Quick Sort algorithm. This will handle arrays that are already sorted, and arrays with duplicate keys.

        If you think of a one dimensional array as going from the lowest index on the left to the highest index on the right then the parameters to this function are lowest index or left and highest index or right.

        Parameters:
        a - An array of String items.
        lo0 - Left boundary of array partition.
        hi0 - Right boundary of array partition.
      • QuickSort

        public static void QuickSort​(Sortable sortable,
                                     int lo0,
                                     int hi0)
        This is a generic version of C.A.R Hoare's Quick Sort algorithm. This will handle Sortable objects that are already sorted, and Sortable objects with duplicate keys.

        Parameters:
        sortable - A Sortable object.
        lo0 - Left boundary of partition.
        hi0 - Right boundary of partition.
      • QuickSort

        public static void QuickSort​(Sortable sortable)
        This is a generic version of C.A.R Hoare's Quick Sort algorithm. This will handle Sortable objects that are already sorted, and Sortable objects with duplicate keys.

        Equivalent to:

         QuickSort (sortable, sortable.first (), sortable.last ());
         
        Parameters:
        sortable - A Sortable object.
      • QuickSort

        public static java.lang.Object[] QuickSort​(java.util.Hashtable h)
                                            throws java.lang.ClassCastException
        Sort a Hashtable.
        Parameters:
        h - A Hashtable with String or Ordered keys.
        Returns:
        A sorted array of the keys.
        Throws:
        java.lang.ClassCastException - If the keys of the hashtable are not Ordered.
      • bsearch

        public static int bsearch​(Sortable set,
                                  Ordered ref,
                                  int lo,
                                  int hi)
        Binary search for an object
        Parameters:
        set - The collection of Ordered objects.
        ref - The name to search for.
        lo - The lower index within which to look.
        hi - The upper index within which to look.
        Returns:
        The index at which reference was found or is to be inserted.
      • bsearch

        public static int bsearch​(Sortable set,
                                  Ordered ref)
        Binary search for an object
        Parameters:
        set - The collection of Ordered objects.
        ref - The name to search for.
        Returns:
        The index at which reference was found or is to be inserted.
      • bsearch

        public static int bsearch​(java.util.Vector vector,
                                  Ordered ref,
                                  int lo,
                                  int hi)
        Binary search for an object
        Parameters:
        vector - The vector of Ordered objects.
        ref - The name to search for.
        lo - The lower index within which to look.
        hi - The upper index within which to look.
        Returns:
        The index at which reference was found or is to be inserted.
      • bsearch

        public static int bsearch​(java.util.Vector vector,
                                  Ordered ref)
        Binary search for an object
        Parameters:
        vector - The vector of Ordered objects.
        ref - The name to search for.
        Returns:
        The index at which reference was found or is to be inserted.
      • bsearch

        public static int bsearch​(Ordered[] array,
                                  Ordered ref,
                                  int lo,
                                  int hi)
        Binary search for an object
        Parameters:
        array - The array of Ordered objects.
        ref - The name to search for.
        lo - The lower index within which to look.
        hi - The upper index within which to look.
        Returns:
        The index at which reference was found or is to be inserted.
      • bsearch

        public static int bsearch​(Ordered[] array,
                                  Ordered ref)
        Binary search for an object
        Parameters:
        array - The array of Ordered objects.
        ref - The name to search for.
        Returns:
        The index at which reference was found or is to be inserted.