/** Source code example for "A Practical Introduction to Data Structures and Algorithm Analysis, 3rd Edition (Java)" by Clifford A. Shaffer Copyright 2008-2011 by Clifford A. Shaffer */ /** A JUnit test class for sort algorithms */ import java.io.*; public class SortTest extends junit.framework.TestCase { final static int testsize = 1000; static Integer A[]; static int THRESHOLD = 8; static int[] POW2 = {1, 2, 4, 8, 16, 32, 64, 128, 256}; @SuppressWarnings("unchecked") // Generic array allocation static void Sort(Integer[] A) { assert THRESHOLD > 0 : "Usage: Sortmain [+/-] , " + "MUST SET THRESHOLD AS NUMBER OF BITS IN RADIX"; Integer[] temp = new Integer[A.length]; int[] count = new int[POW2[THRESHOLD]]; radix(A, temp, 16/THRESHOLD, POW2[THRESHOLD], count); } static void radix(Integer[] A, Integer[] B, int k, int r, int[] count) { // Count[i] stores number of records in bin[i] int i, j, rtok; for (i=0, rtok=1; i=0; j--) B[--count[(A[j]/rtok)%r]] = A[j]; for (j=0; j