public static void main(String[] args) {
        int epsilon = 3;
        
        System.out.println("Epsilon: "+epsilon);
        ArrayList<Point> points = new ArrayList<Point>();
        Random r = new Random();
        for (int i = 0; i < 21; i++) {
            points.add(new Point(r.nextInt(10),r.nextInt(10)));
        }
        
        System.out.println("Points "+points );
        System.out.println("----------------");
        System.out.println("Neighbouring Kd");
        KDTree tree = new KDTree(points);
        for (Point p : points) {
            
            ArrayList<Point> neighbours = tree.rangeSearch(p,epsilon);
           // for (Point q : neighbours) { q.addNeighbour(p);}
            p.addNeighbours(neighbours);
            p.printNeighbours();
            p.clearNeighbours();
        }
        System.out.println("------------------");
        System.out.println("Neighbouring O(n^2)");
    for (int i = 0; i < points.size(); i++) {
        for (int j = i + 1; j < points.size(); j++) {
            Point p = points.get(i), q = points.get(j);
            if (p.distance(q) <= epsilon) {
                p.addNeighbour(q);
                q.addNeighbour(p);
            }
        }
    }
        for (Point point : points) {
            point.printNeighbours();
        }

    }