public void sortArray(T[] d,Comparator<T> c){
  this.data=d;
  this.comp=c;
  int len=Math.max((int)(100 * Math.log(d.length)),TEMP_SIZE);
  len=Math.min(d.length,len);
  @SuppressWarnings("unchecked") T[] t=(T[])new Object[len];
  this.temp=t;
  mergeSort(0,d.length - 1);
}

public void sortArray ( T [ ] d , Comparator < T > c ) { this . data = d ; this . comp = c ; int len = Math . max ( ( int ) ( 100 * Math . log ( d . length ) ) , TEMP_SIZE ) ; len = Math . min ( d . length , len ) ; @ SuppressWarnings ( "unchecked" ) T [ ] t = ( T [ ] ) new Object [ len ] ; this . temp = t ; mergeSort ( 0 , d . length - 1 ) ; }
sort an array using the given comparator .
