Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 26th, 2012  |  syntax: None  |  size: 2.36 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.         ArrayList<Double> locTeamRatios = new ArrayList<Double>();
  2.         Team[] mylist = currentTeams.toArray(new Team[currentTeams.size()]);
  3.         Team result[] = new Team[mylist.length];
  4.  
  5.         Arrays.sort(mylist,Team.POSTAL_ORDER);
  6.  
  7.         for (int y = 0; y < result.length; y++) {
  8.             result[y] = new Team(-1,"",null,-1);
  9.         }
  10.         for (int y = 0; y < mylist.length; y++) {
  11.             Team el = mylist[y];
  12.             int bestIndex = 0;
  13.             int bestDistance = -1;
  14.             int bestDiff = -1;
  15.  
  16.             for (int i = 0; i < result.length; i++) {
  17.                 Team el2 = result[i];
  18.                 if(el2.postal > -1){ continue; }
  19.                 Team left[] = Arrays.copyOfRange(result, 0, i);
  20.                 Team right[] = new Team[0];
  21.                 if(!(i+1 > result.length -1)){
  22.                     right = Arrays.copyOfRange(result, i+1,result.length);
  23.                 }
  24.                 int leftRes = 1;
  25.                 int rightRes = 1;
  26.                 int leftDiff = 0;
  27.                 int rightDiff = 0;
  28.  
  29.                 //reverse left
  30.                 List <Team> list = Arrays.asList(left);
  31.                 Collections.reverse(list);
  32.                 left = list.toArray(new Team[list.size()]);
  33.  
  34.  
  35.                 for (int j = 0; j < left.length; j++) {
  36.                     Team el3 = left[j];
  37.                     if(el3.postal != -1){
  38.                         leftRes = j+1;
  39.                         leftDiff = (int) Math.abs(el3.postal - el.postal);
  40.                         break;
  41.                     }
  42.                 }
  43.                 for (int j = 0; j < right.length; j++) {
  44.                     Team el3 = right[j];
  45.                     if(el3.postal != -1){
  46.                         rightRes = j+1;
  47.                         rightDiff = (int) Math.abs(el3.postal - el.postal);
  48.                         break;
  49.                     }
  50.                 }
  51.                 int total = leftRes * rightRes;
  52.  
  53.                 int closestDiff = rightDiff;
  54.                 if(leftRes < rightRes){
  55.                     closestDiff = leftRes;
  56.                 }
  57.  
  58.                 if(total > bestDistance || (total == bestDistance && closestDiff > bestDiff)){
  59.                     bestDistance = total;
  60.                     bestIndex = i;
  61.                     bestDiff = closestDiff;
  62.                 }
  63.             }
  64.             result[bestIndex] = el;
  65.  
  66.         }
  67.         return result;