Assignment title: Information
Design and implement a new algorithm in Java for k-means clusteringproblem. Test your program using at least three different sets of data points. You mayrandomly generate n = 20 data points for set 1, n = 100 data points for set 2, and n =1,000 data points for set 3.2) Write a report in word file:a. (20 points) In the report, first explain your new algorithm using pseudocode.b. (10 points) What is the running time of your algorithm?c. (40 points) Show (e.g., in figures) that your algorithm performs better than thegreedy algorithm described in Section obtainedby your algorithm is smaller than that returned by the greedy algorithm for allthree data sets. This means you need to implement the greedy algorithm for thisassignment as well, in order to compare results.Submission. Submit all .java files needed to compile your program. Submit the report (inword). Make sure that write a README text file explaining how to compile/run your program.Zip all files and submit the zip to isidore.3. Grading notesIf your program does not compile, you receive zero points for this assignment.3When implementing your algorithm, you can use data structures defined in Java library(e.g., ArrayList, Priority Queue). If you need sorting, use sort functions given in Javalibrary. Be sure to test the correctness of your algorithms and implementations.Your code will be graded based on whether or not it compiles, runs, produces correctoutput, and your coding style (does the code follow proper indentation/style andcomments).