Write a java code for selection sort algorithm using Comparable or Comparator in
ID: 3717235 • Letter: W
Question
Write a java code for selection sort algorithm using Comparable or Comparator interface. Show that your algorithms work by creating an array of Circles and sorting them based on the radius.Write a java code for selection sort algorithm using Comparable or Comparator interface. Show that your algorithms work by creating an array of Circles and sorting them based on the radius.
Write a java code for selection sort algorithm using Comparable or Comparator interface. Show that your algorithms work by creating an array of Circles and sorting them based on the radius.
Explanation / Answer
Circle.java
public class Circle implements Comparable<Circle>{
//Declaring instance variables
private double radius;
//Zero argumented constructor
public Circle() {
}
//Parameterized constructor
public Circle(double radius) {
this.radius = radius;
}
// getters and setters
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getArea() {
return radius*radius*Math.PI;
}
public double getPerimeter() {
return 2*radius*Math.PI;
}
public double getDiameter()
{
return 2*radius;
}
/* This compareTo method will compare
* the radius of two circles and return the result.
*
*/
public int compareTo(Circle o) {
int val = 0;
double originalCircleRadius = getRadius();
Circle c = (Circle) o;
double radius = c.getRadius();
if (originalCircleRadius > radius)
val = 1;
else if (originalCircleRadius < radius)
val = -1;
else if (originalCircleRadius == radius)
val = 0;
return val;
}
}
____________________
DriverClass.java
import java.util.ArrayList;
import java.util.Scanner;
public class DriverClass {
public static void main(String[] args) {
//Creating an ArrayList Which holds Circle Class objects
ArrayList<Circle> arl=new ArrayList<Circle>();
arl.add(new Circle(5.5));
arl.add(new Circle(4.5));
arl.add(new Circle(3.5));
arl.add(new Circle(2.5));
arl.add(new Circle(6.5));
arl.add(new Circle(7.5));
arl.add(new Circle(4.0));
//Displaying the Circles before and After Sorting
System.out.println("____ Before Sorting ___");
display(arl);
sort(arl);
System.out.println("____ After Sorting ___");
display(arl);
}
//This method will Display the ArrayList
private static void display(ArrayList<Circle> arl) {
for(int i=0;i<arl.size();i++)
{
System.out.println("Circle#"+(i+1)+": Radius:"+arl.get(i).getRadius());
}
}
//This method will Display the ArrayList Elements based on Radius
private static void sort(ArrayList<Circle> arl) {
// Bubble sort
for (int i = 0; i < arl.size(); i++) {
for (int j = arl.size() - 1; j > i; j--) {
if (arl.get(j - 1).compareTo(arl.get(j)) > 0) {
Circle temp = arl.get(j);
arl.set(j, arl.get(j - 1));
arl.set(j - 1, temp);
}
}
}
}
}
____________________
Output:
____ Before Sorting ___
Circle#1: Radius:5.5
Circle#2: Radius:4.5
Circle#3: Radius:3.5
Circle#4: Radius:2.5
Circle#5: Radius:6.5
Circle#6: Radius:7.5
Circle#7: Radius:4.0
____ After Sorting ___
Circle#1: Radius:2.5
Circle#2: Radius:3.5
Circle#3: Radius:4.0
Circle#4: Radius:4.5
Circle#5: Radius:5.5
Circle#6: Radius:6.5
Circle#7: Radius:7.5
______________Thank You
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.