@Test public void testParMasCercano() { List<Punto2D> lista = ListasDePuntos.getListaPuntosAleatoria(10000); ParDePuntos p1 = ListasDePuntos.parMasCercano(lista); ParDePuntos p2 = ListasDePuntos.parMasCercanoBase(0, lista.size(), lista); if(!p1.getDistancia().equals(p2.getDistancia())){ System.out.println(p1+","+p2); } assertTrue(p1.getDistancia().equals(p2.getDistancia())); }
public static ParDePuntos parMasCercano(List<Punto2D> lista){ ParDePuntos p = null; List<Punto2D> puntosX; List<Punto2D> puntosY; Comparator<Punto2D> ordX = new Comparator<Punto2D>(){ @Override public int compare(Punto2D p1, Punto2D p2) { return p1.getX().compareTo(p2.getX()); } }; Comparator<Punto2D> ordY = new Comparator<Punto2D>(){ @Override public int compare(Punto2D p1, Punto2D p2) { return p1.getY().compareTo(p2.getY()); } }; Comparator<ParDePuntos> ordNatural = Comparator.naturalOrder(); puntosX = Comparator2.sortedCopy(lista,ordX); puntosY = Comparator2.sortedCopy(lista,ordY); p = masCercano(0,lista.size(),puntosX, puntosY,4,ordNatural); return p; }
ListasDePuntos { public static ParDePuntos parMasCercano(List<Punto2D> lista){ ParDePuntos p = null; List<Punto2D> puntosX; List<Punto2D> puntosY; Comparator<Punto2D> ordX = new Comparator<Punto2D>(){ @Override public int compare(Punto2D p1, Punto2D p2) { return p1.getX().compareTo(p2.getX()); } }; Comparator<Punto2D> ordY = new Comparator<Punto2D>(){ @Override public int compare(Punto2D p1, Punto2D p2) { return p1.getY().compareTo(p2.getY()); } }; Comparator<ParDePuntos> ordNatural = Comparator.naturalOrder(); puntosX = Comparator2.sortedCopy(lista,ordX); puntosY = Comparator2.sortedCopy(lista,ordY); p = masCercano(0,lista.size(),puntosX, puntosY,4,ordNatural); return p; } }
ListasDePuntos { public static ParDePuntos parMasCercano(List<Punto2D> lista){ ParDePuntos p = null; List<Punto2D> puntosX; List<Punto2D> puntosY; Comparator<Punto2D> ordX = new Comparator<Punto2D>(){ @Override public int compare(Punto2D p1, Punto2D p2) { return p1.getX().compareTo(p2.getX()); } }; Comparator<Punto2D> ordY = new Comparator<Punto2D>(){ @Override public int compare(Punto2D p1, Punto2D p2) { return p1.getY().compareTo(p2.getY()); } }; Comparator<ParDePuntos> ordNatural = Comparator.naturalOrder(); puntosX = Comparator2.sortedCopy(lista,ordX); puntosY = Comparator2.sortedCopy(lista,ordY); p = masCercano(0,lista.size(),puntosX, puntosY,4,ordNatural); return p; }  }
ListasDePuntos { public static ParDePuntos parMasCercano(List<Punto2D> lista){ ParDePuntos p = null; List<Punto2D> puntosX; List<Punto2D> puntosY; Comparator<Punto2D> ordX = new Comparator<Punto2D>(){ @Override public int compare(Punto2D p1, Punto2D p2) { return p1.getX().compareTo(p2.getX()); } }; Comparator<Punto2D> ordY = new Comparator<Punto2D>(){ @Override public int compare(Punto2D p1, Punto2D p2) { return p1.getY().compareTo(p2.getY()); } }; Comparator<ParDePuntos> ordNatural = Comparator.naturalOrder(); puntosX = Comparator2.sortedCopy(lista,ordX); puntosY = Comparator2.sortedCopy(lista,ordY); p = masCercano(0,lista.size(),puntosX, puntosY,4,ordNatural); return p; }  static Set<Punto2D> puntosMaximales(List<Punto2D> lista); static Set<Punto2D> puntosMaximalesBase(int a, int b, List<Punto2D> lista); static ParDePuntos parMasCercano(List<Punto2D> lista); static ParDePuntos parMasCercanoBase(int a, int b, List<Punto2D> lista); static List<Punto2D> getListaPuntosAleatoria(int n); }
ListasDePuntos { public static ParDePuntos parMasCercano(List<Punto2D> lista){ ParDePuntos p = null; List<Punto2D> puntosX; List<Punto2D> puntosY; Comparator<Punto2D> ordX = new Comparator<Punto2D>(){ @Override public int compare(Punto2D p1, Punto2D p2) { return p1.getX().compareTo(p2.getX()); } }; Comparator<Punto2D> ordY = new Comparator<Punto2D>(){ @Override public int compare(Punto2D p1, Punto2D p2) { return p1.getY().compareTo(p2.getY()); } }; Comparator<ParDePuntos> ordNatural = Comparator.naturalOrder(); puntosX = Comparator2.sortedCopy(lista,ordX); puntosY = Comparator2.sortedCopy(lista,ordY); p = masCercano(0,lista.size(),puntosX, puntosY,4,ordNatural); return p; }  static Set<Punto2D> puntosMaximales(List<Punto2D> lista); static Set<Punto2D> puntosMaximalesBase(int a, int b, List<Punto2D> lista); static ParDePuntos parMasCercano(List<Punto2D> lista); static ParDePuntos parMasCercanoBase(int a, int b, List<Punto2D> lista); static List<Punto2D> getListaPuntosAleatoria(int n);  }