Section 22.8 introduced an algorithm for finding the closest pair of points using a divide-and-conquer approach. Implement

Question:

Section 22.8 introduced an algorithm for finding the closest pair of points using a divide-and-conquer approach. Implement the algorithm to meet the following requirements: 

■■ Define a class named Pair with the data fields p1 and p2 to represent two points and a method named getDistance() that returns the distance between the two points.

■■ Implement the following methods:

/** Return the distance of the closest pair of points */
public static Pair getClosestPair(double[][] points)
/** Return the distance of the closest pair of points */
public static Pair getClosestPair(Point2D[] points)
/** Return the distance of the closest pair of points
* in pointsOrderedOnX[low..high]. This is a recursive
* method. pointsOrderedOnX and pointsOrderedOnY are
* not changed in the subsequent recursive calls.
*/
public static Pair distance(Point2D[] pointsOrderedOnX,
int low, int high, Point2D[] pointsOrderedOnY)
/** Compute the distance between two points p1 and p2 */
public static double distance(Point2D p1, Point2D p2)
/** Compute the distance between points (x1, y1) and (x2, y2) */
public static double distance(double x1, double y1,
double x2, double y2)

Fantastic news! We've Found the answer you've been seeking!

Step by Step Answer:

Question Posted: