Tuesday 28 November 2017

Java Program to Find Nearest Neighbor Using Linear Search


Code:

import java.util.Random;
import java.util.Scanner;

public class Linear_Search_Nearest
{
    public static void main(String args[])
    {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        int datasetSize = 10;
        double[][] data = new double[10][2];

        for (int i = 0; i < datasetSize; i++)
            for (int j = 0; j < 2; j++)
                data[i][j] = random.nextDouble() * 10;

        System.out.println("Randomly generated Data set: ");
        for (int i = 0; i < datasetSize; i++)
            for (int j = 0; j < 2; j++)
                System.out.println(data[i][j++] + " ," + data[i][j]);

        System.out.println();
        System.out.println("Enter the co-ordinates of the point: ");
        double x = sc.nextDouble();
        double y = sc.nextDouble();

        double xmin = data[0][0], ymin = data[0][1], xclose = 0, yclose = 0;
        for (int i = 0; i < datasetSize; i++)
        {
            if (Math.abs(data[i][0] - x) < xmin)
            {
                xmin = data[i][0] - x;
                xclose = data[i][0];
            }
        }

        for (int i = 0; i < datasetSize; i++)
        {
            if (Math.abs(data[i][1] - y) < ymin)
            {
                ymin = data[i][1] - x;
                yclose = data[i][1];
            }
        }

        System.out.println("The nearest neighbor is : (" + xclose + ", "
                + yclose + ")");

        sc.close();
    }
}



Output:

Randomly generated Data set: 
3.171455377670047 ,1.052119263026371
3.949033565232699 ,8.565344250655025
0.0208421026579253 ,5.963319480178625
5.9198056196163495 ,4.424992495072658
6.083654323496389 ,2.592835352360611
5.996752857974297 ,2.1046723166354777
3.165362843381636 ,5.1640243122381415
4.175425572150399 ,2.965443123350698
8.734700795907905 ,3.3650152184786064
5.5317982332184235 ,1.5076066489140683

Enter the co-ordinates of the point:
1 2
The nearest neighbor is : (0.0208421026579253, 1.052119263026371)



More Java Programs:



















100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...