Class SortMAE

java.lang.Object
  |
  +--SortMAE

class SortMAE
extends java.lang.Object

The SortMAE class contains a variety of sorting methods. These include: insertion sort, bubble sort and quicksort. They may be applied to various types of arrays of data including string[], int[], float[] data structures. In general, the more efficient quicksort methods may be used to replace bubble sort methods. Sort times are a problem with large datasets using bubble sorts. The constructor is not used.

This work was produced by Peter Lemkin of the National Cancer Institute, an agency of the United States Government. As a work of the United States Government there is no associated copyright. It is offered as open source software under the Mozilla Public License (version 1.1) subject to the limitations noted in the accompanying LEGAL file. This notice must be included with the code. The MAExplorer Mozilla and Legal files are available on http://maexplorer.sourceforge.net/.

Version:
$Date: 2002/10/14 20:44:22 $ $Revision: $
Author:
P. Lemkin (NCI), G. Thornwall (SAIC), NCI-Frederick, Frederick, MD
See Also:
MAExplorer Home

Constructor Summary
(package private) SortMAE()
           
 
Method Summary
(package private) static java.lang.String[] bubbleSort(java.lang.String[] data)
          bubbleSort() - Sort String array via bubble sort.
(package private) static java.lang.String[] bubbleSort(java.lang.String[] data, int len)
          bubbleSort() - Sort String array via bubble sort w/len
(package private) static int[] bubbleSortIndex(float[] data, int len, boolean ascending)
          bubbleSortIndex() - sort copy of float[0:len-1] data with bubble sort, return index[].
(package private) static int[] bubbleSortIndex(int[] data, int len, boolean ascending)
          bubbleSortIndex() - sort copy of int[0:len-1] data with bubble sort, return index[].
(package private) static int[] bubbleSortIndex(short[] data, int len, boolean ascending)
          bubbleSortIndex() - sort copy of short[0:len-1] data with bubble sort, return index[].
(package private) static int[] bubbleSortIndex(java.lang.String[] data, int len, boolean ascending)
          bubbleSortIndex() - sort copy of String[0:len-1] data with bubble sort, return index[].
(package private) static void quickSort(int[] a, int lo0, int hi0)
          quickSort() - sort the int[] array.
(package private) static void quickSort(java.lang.String[] a, int lo0, int hi0)
          quickSort() - sort the String[] array.
(package private) static void quickSortMultLists(java.lang.String[] a, java.lang.String[] aUC, int lo0, int hi0)
          quickSortMultLists() - sort String lists (a[], a[UC[]) by aUC[].
(package private) static void quickSortMultLists(java.lang.String[] a, java.lang.String[] b, java.lang.String[] aUC, int lo0, int hi0)
          quickSortMultLists() - sort String lists (a[], b[], aUC[]) by aUC[].
(package private) static java.lang.String[] sortArray(java.lang.String[] data, boolean sortAscending)
          sortArray() - bubble sort string array either ASCENDING or DESCENDING.
(package private) static java.lang.String[] sortStrArray(java.lang.String[] unsortedData)
          sortStrArray() - create a sorted String[] array.
(package private) static java.lang.String[] sortStrArray(java.lang.String[] unsortedData, int len)
          sortStrArray() - create a sorted String[] array with length specified.
(package private) static int uniqueInsert(java.lang.String[] sList1, java.lang.String[] sList1UC, int sListLen, java.lang.String s1, java.util.Hashtable ht)
          uniqueInsert() - insert s1 at end of sList1[] and UC of s1 in sList1UC[] if s1 is not already in sList1[].
(package private) static int uniqueInsert(java.lang.String[] sList1, java.lang.String[] sList2, java.lang.String[] sListUC, int sListLen, java.lang.String s1, java.lang.String s2, java.util.Hashtable ht)
          uniqueInsert() - insert s1,s2 at end of sList1[], sList2[] lists if s1 is not already in sList1[].
(package private) static int uniqueInsertionSort(java.lang.String[] sList, java.lang.String[] sListUC, int sListLen, java.lang.String newStr)
          uniqueInsertionSort() - insertion sort newStr into sList[] if unique.
(package private) static int uniqueInsertionSort(java.lang.String[] sList1, java.lang.String[] sList2, java.lang.String[] sList1UC, int sListLen, java.lang.String s1, java.lang.String s2)
          uniqueInsertionSort() - insertion bubble sort s1,s2 into sList1[], sList2[] if s1 is unique.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Constructor Detail

SortMAE

SortMAE()
Method Detail

sortStrArray

static java.lang.String[] sortStrArray(java.lang.String[] unsortedData)
sortStrArray() - create a sorted String[] array.
Parameters:
unsortedData - array of data to be sorted
Returns:
the new sorted string[] array
See Also:
sortStrArray(java.lang.String[])

sortStrArray

static java.lang.String[] sortStrArray(java.lang.String[] unsortedData,
                                       int len)
sortStrArray() - create a sorted String[] array with length specified.
Parameters:
unsortedData - array of data to be sorted
len - size of subarray array of data to be sorted [0:len-1]
Returns:
the new sorted string[] array
See Also:
bubbleSort(java.lang.String[])

bubbleSort

static java.lang.String[] bubbleSort(java.lang.String[] data)
bubbleSort() - Sort String array via bubble sort.
Parameters:
data - array of data to be sorted
Returns:
the new sorted string[] array

bubbleSort

static java.lang.String[] bubbleSort(java.lang.String[] data,
                                     int len)
bubbleSort() - Sort String array via bubble sort w/len
Parameters:
data - array of data to be sorted
len - size of subarray array of data to be sorted [0:len-1]
Returns:
the new sorted string[] array

bubbleSortIndex

static int[] bubbleSortIndex(java.lang.String[] data,
                             int len,
                             boolean ascending)
bubbleSortIndex() - sort copy of String[0:len-1] data with bubble sort, return index[]. Do NOT actually sort the original data[].
Parameters:
data - array of data to be sorted
len - size of subarray array of data to be sorted [0:len-1]
ascending - sort if true
Returns:
the index[] of the sorted data

bubbleSortIndex

static int[] bubbleSortIndex(short[] data,
                             int len,
                             boolean ascending)
bubbleSortIndex() - sort copy of short[0:len-1] data with bubble sort, return index[]. Do NOT actually sort the original data[].
Parameters:
data - array of data to be sorted
len - size of subarray array of data to be sorted [0:len-1]
ascending - sort if true
Returns:
the index[] of the sorted data

bubbleSortIndex

static int[] bubbleSortIndex(int[] data,
                             int len,
                             boolean ascending)
bubbleSortIndex() - sort copy of int[0:len-1] data with bubble sort, return index[].
Parameters:
data - array of data to be sorted
len - size of subarray array of data to be sorted [0:len-1]
ascending - sort if true
Returns:
the index[] of the sorted data

bubbleSortIndex

static int[] bubbleSortIndex(float[] data,
                             int len,
                             boolean ascending)
bubbleSortIndex() - sort copy of float[0:len-1] data with bubble sort, return index[].
Parameters:
len - size of subarray array of data to be sorted [0:len-1]
ascending - sort if true
Returns:
the index[] of the sorted data

uniqueInsertionSort

static int uniqueInsertionSort(java.lang.String[] sList,
                               java.lang.String[] sListUC,
                               int sListLen,
                               java.lang.String newStr)
uniqueInsertionSort() - insertion sort newStr into sList[] if unique. Note: this is faster than the bubble sort after the list is constructed.
Parameters:
sList - array of data to be sorted
sListUC - array of parallel uppercase data to be sorted
sListLen - size of subarray array of data to be sorted [0:sListLen-1]
newStr - new data to insert
Returns:
the size of the sorted array with new item inserted

uniqueInsertionSort

static int uniqueInsertionSort(java.lang.String[] sList1,
                               java.lang.String[] sList2,
                               java.lang.String[] sList1UC,
                               int sListLen,
                               java.lang.String s1,
                               java.lang.String s2)
uniqueInsertionSort() - insertion bubble sort s1,s2 into sList1[], sList2[] if s1 is unique. Note: this is faster than the bubble sort after the list is constructed.
Parameters:
sList1 - array of data to be sorted
sList2 - array of data to be sorted
sListUC - array of parallel uppercase data to be sorted
sListLen - size of subarray array of data to be sorted [0:sListLen-1]
s1 - new data to insert
s2 - new data to insert
Returns:
the size of the (possibly modified) list.

sortArray

static java.lang.String[] sortArray(java.lang.String[] data,
                                    boolean sortAscending)
sortArray() - bubble sort string array either ASCENDING or DESCENDING. This uses a bubble sort. [TODO] extend this to deal with trailing numbers eg. A1, A10, A2 should be sorted as A1, A2, A10. Should be able to use a RuleBasedCollator...
Parameters:
data - array of data to be sorted
sortAscending - direction of sort
Returns:
the sorted list.

uniqueInsert

static int uniqueInsert(java.lang.String[] sList1,
                        java.lang.String[] sList1UC,
                        int sListLen,
                        java.lang.String s1,
                        java.util.Hashtable ht)
uniqueInsert() - insert s1 at end of sList1[] and UC of s1 in sList1UC[] if s1 is not already in sList1[]. Note: this is to be used with the quickSortMultLists() for these arrays after they are constructed.
Parameters:
sList1 - array of data to be sorted
sListUC - array of parallel uppercase data to be sorted
sListLen - size of subarray array of data to be sorted [0:sListLen-1]
newStr - sort if true
Returns:
the size of the (possibly modified) list.

uniqueInsert

static int uniqueInsert(java.lang.String[] sList1,
                        java.lang.String[] sList2,
                        java.lang.String[] sListUC,
                        int sListLen,
                        java.lang.String s1,
                        java.lang.String s2,
                        java.util.Hashtable ht)
uniqueInsert() - insert s1,s2 at end of sList1[], sList2[] lists if s1 is not already in sList1[]. Insert UC of s1 into sList1UC[]. Note: this is to be used with the quickSortMultLists() for these arrays after they are constructed.
Parameters:
sList1 - array of data to be sorted
sList2 - array of data to be sorted
sListUC - array of parallel uppercase data to be sorted
sListLen - size of subarray array of data to be sorted [0:sListLen-1]
s1 - data to insert
s2 - data to insert
ht - hashtable to use
Returns:
the size of the (possibly modified) list.

quickSort

static void quickSort(int[] a,
                      int lo0,
                      int hi0)
quickSort() - sort the int[] array. Based on the QuickSort method by James Gosling from Sun's SortDemo applet
Parameters:
a - array of data to sort
lo0 - lower bound of array
hi0 - uppper bound of array

quickSort

static void quickSort(java.lang.String[] a,
                      int lo0,
                      int hi0)
quickSort() - sort the String[] array. Based on the QuickSort method by James Gosling from Sun's SortDemo applet
Parameters:
a - array of data to sort
lo0 - lower bound of array
hi0 - uppper bound of array

quickSortMultLists

static void quickSortMultLists(java.lang.String[] a,
                               java.lang.String[] aUC,
                               int lo0,
                               int hi0)
quickSortMultLists() - sort String lists (a[], a[UC[]) by aUC[]. Requires that aUC[] be a[].toUppercase(). Based on the QuickSort method by James Gosling from Sun's SortDemo applet
Parameters:
a - array of data to sort
aUC - upper case version of array a[]
lo0 - lower bound of array
hi0 - uppper bound of array

quickSortMultLists

static void quickSortMultLists(java.lang.String[] a,
                               java.lang.String[] b,
                               java.lang.String[] aUC,
                               int lo0,
                               int hi0)
quickSortMultLists() - sort String lists (a[], b[], aUC[]) by aUC[]. Requires that aUC[] be a[].toUppercase(). Based on the QuickSort method by James Gosling from Sun's SortDemo applet
Parameters:
a - array of data to sort
b - array of data to sort
aUC - upper case version of array a[]
lo0 - lower bound of array
hi0 - uppper bound of array