/////// IntArray.java /////// // Integer array made sortable import java.io.*; public class IntArray implements Sortable { public IntArray(int a[], int len, int f) { arr = a; length = len; dirFlag = f; } public int compare(int i, int j) { if ( dirFlag == Sortable.INCREASING ) return(arr[i] - arr[j]); else return(arr[j] - arr[i]); } public void swap(int i, int j) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } public void display(OutputStream o) { int i; PrintWriter out = new PrintWriter(o); for ( i = 0; i < length-1; i++ ) out.print(arr[i] + ", "); out.print(arr[i]); out.flush(); } // sets sort-direction flag public int first() { return(0); } public int last() { return(length-1); } public boolean sorted() { return sortFlag; } public void sorted(boolean b) { sortFlag = b; } public void direction(int f) { if (dirFlag != f ) { dirFlag = f; sortFlag = false; } } public int direction() { return(dirFlag); } // direction is either Sortable.INCREASING or Sortable.DECREASING private int dirFlag = Sortable.INCREASING; private int length; private boolean sortFlag = false; private int arr[]; }