Data Structure course Can anybody please help me with this ? inport java.util.Ar
ID: 3742235 • Letter: D
Question
Data Structure course Can anybody please help me with this ? inport java.util.ArrayList: inport java.util.collections import java.util.Comparator import java.util.List: class Empl private Strirg nane private int salary: public class MyArraylistsort ( public Enpl(String n, int sX public static void nain(String al1)0 this.nane- this.salary-s List 1ist new ArrayListcip>O: list.add(new Empl("Ram, 3000)) 1ist.add(new Empl("John".6800)) list.add(new Empl("Crish,20ee)); list.add(new Empl("Ton",2400)); Collections. sort(list,new MysalaryComp(O): System.out.printin("Sorted 1ist entries: for(Empl e:list)H public String getNane) public void setNane(String nane) ( public int getsalary) [ public void setsalary(int salary) f public String tostring)t return nane: this,name nane; System.out.printin(e): return salary; this salary salary return "Name: "this.naneSalary: "+this.salary; class MysalaryComp implenents ConparatorcEmpl>( @Override public int compare(Empl el, Empl e2) f if(e1.getsalary) e2.getsalary))( ) else f return 1 return -1Explanation / Answer
package DS;
import java.util.*;
// Class Empl definition
class Empl
{
// Instance variables to store data
private String name;
private double salary;
// Parameterized constructor to assign parameter data to instance variable
public Empl(String n, double s)
{
this.name = n;
this.salary = s;
}// End of constructor
// Method to return name
public String getName()
{
return name;
}// End of method
// Method to set name
public void setName(String name)
{
this.name = name;
}// End of method
// Method to return salary
public double getSalary()
{
return salary;
}// End of method
// Method to set salary
public void setSalary(double salary)
{
this.salary = salary;
}// End of method
// Overrides toString() method to return employee information
public String toString()
{
return "Name: " + this.name + "-- Salary: " + salary;
}// End of method
}// End of class
// Class MySalaryComp definition
class MySalaryComp implements Comparator<Empl>
{
// Overrides method to compare
public int compare(Empl e1, Empl e2)
{
// Compares salary
if(e1.getSalary() < e2.getSalary())
return 1;
else
return -1;
}// End of method
}// End of class
// Defines class MyArrayListSort
public class MyArrayListSort
{
// Method to perform selection sort
private static void selectionSort(List <Empl> list100, int size)
{
// Loops till length minus two
for (int i = 0; i < size - 1; i++)
{
int min = i;
// Loops from next to i position to length minus one
for (int j = i + 1; j < size; j++)
{
// Compares the salary
if (list100.get(j).getSalary() < list100.get(min).getSalary())
{
// Stores the current minimum index
min = j;
}// End of if condition
}// End of for loop
// swaps the smallest value with the position 'i'
Empl temp = list100.get(i);
list100.add(i, list100.get(min));
list100.remove(i);
list100.add(min, temp);
list100.remove(min);
}// End of for loop
}// End of method
// main method definition
public static void main(String ss[])
{
// Creates a list of 10 and 100 employees for other sort
List <Empl> list10os = new ArrayList<Empl>();
// Creates a list of 100 employees
List <Empl> list100os = new ArrayList<Empl>();
// Creates a list of 10 and 100 employees for selection sort
List <Empl> list10ss = new ArrayList<Empl>();
// Creates a list of 100 employees
List <Empl> list100ss = new ArrayList<Empl>();
// Sets minimum and maximum salary
double minsal = 2000;
double maxsal = 10000;
// Loops 10 times
for(int x = 0; x < 10; x++)
{
// Generates random salary
double sal = (Math.random() * ((maxsal - minsal) + 1))+ minsal;
// Creates a new employee using parameterized constructor
// and adds to list
list10os.add(new Empl("a" + x, sal));
list10ss.add(new Empl("a" + x, sal));
}// End of for loop
// Loops 100 times
for(int x = 0; x < 100; x++)
{
// Generates random salary
double sal = (Math.random() * ((maxsal - minsal) + 1))+ minsal;
// Creates a new employee using parameterized constructor
// and adds to list
list100os.add(new Empl("b" + x, sal));
list100ss.add(new Empl("b" + x, sal));
}// End of for loop
// Sorting list 10 with other sort
// Stores start time
long startTime10os = System.currentTimeMillis();
// Sorts data
Collections.sort(list10os, new MySalaryComp());
// Stores end time
long endTime10os = System.currentTimeMillis();
// Displays sorted list
System.out.println("General Sorted list 10: ");
for(Empl e: list10os)
System.out.println(e);
// Calculates time duration
long wallTime10os = endTime10os - startTime10os;
double wallTimeinSeconds10os = wallTime10os / 1000.0;
// Sorting list 10 with selection sort
// Stores start time
long startTime10ss = System.currentTimeMillis();
// Sorts data
selectionSort(list10ss, 10);
// Stores end time
long endTime10ss = System.currentTimeMillis();
// Displays sorted list
System.out.println("Selection Sorted list 10: ");
for(Empl e: list10ss)
System.out.println(e);
// Calculates time duration
long wallTime10ss = endTime10ss - startTime10ss;
double wallTimeinSeconds10ss = wallTime10ss / 1000.0;
// Sorting list 100 with other sort
// Stores start time
long startTime100os = System.currentTimeMillis();
// Sorts data
Collections.sort(list100os, new MySalaryComp());
// Stores end time
long endTime100os = System.currentTimeMillis();
// Displays sorted list
System.out.println("General Sorted list 100: ");
for(Empl e: list100os)
System.out.println(e);
// Calculates time duration
long wallTime100os = endTime100os - startTime100os;
double wallTimeinSeconds100os = wallTime100os / 1000.0;
// Sorting list 100 with selection sort
// Stores start time
long startTime100ss = System.currentTimeMillis();
// Sorts data
selectionSort(list100ss, 100);
// Stores end time
long endTime100ss = System.currentTimeMillis();
// Displays sorted list
System.out.println("Selection Sorted list 100: ");
for(Empl e: list100ss)
System.out.println(e);
// Calculates time duration
long wallTime100ss = endTime100ss - startTime100ss;
double wallTimeinSeconds100ss = wallTime100ss / 1000.0;
// Displays information
System.out.println("Time to sort data per n = 10");
System.out.println("Other Sort: " + wallTimeinSeconds10os + " Selectioin Sort: " + wallTimeinSeconds10ss);
System.out.println("Time to sort data per n = 100");
System.out.println("Other Sort: " + wallTimeinSeconds100os + " Selectioin Sort: " + wallTimeinSeconds100ss);
}// End of main method
}// End of class
Sample Output:
General Sorted list 10:
Name: a7-- Salary: 9393.316526498387
Name: a2-- Salary: 8441.541861633668
Name: a4-- Salary: 5403.281352333273
Name: a0-- Salary: 5002.6739910647175
Name: a1-- Salary: 4952.958961999055
Name: a9-- Salary: 4743.541218410226
Name: a5-- Salary: 4605.259774479734
Name: a3-- Salary: 3734.397568328185
Name: a6-- Salary: 3396.8968067993865
Name: a8-- Salary: 2673.4686764530547
Selection Sorted list 10:
Name: a0-- Salary: 5002.6739910647175
Name: a1-- Salary: 4952.958961999055
Name: a2-- Salary: 8441.541861633668
Name: a3-- Salary: 3734.397568328185
Name: a4-- Salary: 5403.281352333273
Name: a5-- Salary: 4605.259774479734
Name: a6-- Salary: 3396.8968067993865
Name: a7-- Salary: 9393.316526498387
Name: a8-- Salary: 2673.4686764530547
Name: a9-- Salary: 4743.541218410226
General Sorted list 100:
Name: b83-- Salary: 9973.352422701293
Name: b64-- Salary: 9936.150172018919
Name: b49-- Salary: 9862.801707009792
Name: b98-- Salary: 9774.679055369
Name: b58-- Salary: 9723.714835277198
Name: b19-- Salary: 9691.02004957179
Name: b99-- Salary: 9552.173954155369
Name: b17-- Salary: 9514.826210345567
Name: b37-- Salary: 9485.623134419235
Name: b46-- Salary: 9479.67900523495
Name: b65-- Salary: 9404.634420178449
Name: b3-- Salary: 9359.734165876976
Name: b84-- Salary: 9204.258840738981
Name: b6-- Salary: 9197.325568404387
Name: b82-- Salary: 9117.082239350695
Name: b44-- Salary: 9106.121046445072
Name: b81-- Salary: 9003.568512175472
Name: b73-- Salary: 8898.483091812812
Name: b14-- Salary: 8872.931059322773
Name: b97-- Salary: 8833.55387061282
Name: b54-- Salary: 8794.265700877122
Name: b60-- Salary: 8790.773202711369
Name: b71-- Salary: 8722.547420313445
Name: b35-- Salary: 8714.70182973785
Name: b12-- Salary: 8581.35494197972
Name: b27-- Salary: 8564.850864191201
Name: b92-- Salary: 8548.072685465482
Name: b28-- Salary: 8436.914078885646
Name: b96-- Salary: 8400.167799777922
Name: b67-- Salary: 8342.732576612532
Name: b25-- Salary: 8271.353715853631
Name: b10-- Salary: 8173.036497128695
Name: b16-- Salary: 8115.3983739027135
Name: b18-- Salary: 7981.655983073427
Name: b85-- Salary: 7944.373719769946
Name: b57-- Salary: 7884.538775271883
Name: b39-- Salary: 7876.953788057386
Name: b50-- Salary: 7682.693407684093
Name: b36-- Salary: 7675.802137881441
Name: b1-- Salary: 7436.620479830245
Name: b68-- Salary: 7418.851936866526
Name: b87-- Salary: 7274.743797462349
Name: b13-- Salary: 7166.43267998424
Name: b69-- Salary: 6938.550865060909
Name: b26-- Salary: 6678.550068279912
Name: b52-- Salary: 6603.86726980656
Name: b0-- Salary: 6586.084753016211
Name: b70-- Salary: 6476.333699704278
Name: b93-- Salary: 6334.066007785089
Name: b42-- Salary: 6190.168053535845
Name: b53-- Salary: 6179.920724107216
Name: b41-- Salary: 5900.294690224702
Name: b29-- Salary: 5891.154954727925
Name: b56-- Salary: 5890.120614880536
Name: b20-- Salary: 5860.076163044818
Name: b45-- Salary: 5751.869090519958
Name: b4-- Salary: 5643.827120381261
Name: b9-- Salary: 5556.415437944449
Name: b94-- Salary: 5523.40895945136
Name: b11-- Salary: 5480.125462722863
Name: b55-- Salary: 5358.723558324595
Name: b34-- Salary: 5293.071551365345
Name: b15-- Salary: 5283.805820092741
Name: b33-- Salary: 5253.262163597976
Name: b77-- Salary: 5251.292038620526
Name: b51-- Salary: 5224.970185445834
Name: b48-- Salary: 5138.7081112578235
Name: b90-- Salary: 4915.187065264236
Name: b2-- Salary: 4742.962203859872
Name: b80-- Salary: 4696.455037937527
Name: b23-- Salary: 4632.725905415196
Name: b8-- Salary: 4585.591942384123
Name: b78-- Salary: 4503.408207386374
Name: b89-- Salary: 4449.469815218687
Name: b43-- Salary: 4418.686755695684
Name: b59-- Salary: 4053.744479092236
Name: b88-- Salary: 4018.0093374559297
Name: b66-- Salary: 3956.730831129523
Name: b22-- Salary: 3911.784459786828
Name: b21-- Salary: 3843.318078018412
Name: b47-- Salary: 3721.0048119256317
Name: b5-- Salary: 3639.1276767808704
Name: b76-- Salary: 3536.0898202220023
Name: b61-- Salary: 3481.7413821109812
Name: b74-- Salary: 3411.955287250118
Name: b30-- Salary: 3333.7295780958175
Name: b24-- Salary: 3333.499114725905
Name: b32-- Salary: 3210.139687283
Name: b31-- Salary: 2773.3741296296853
Name: b75-- Salary: 2751.029597327944
Name: b95-- Salary: 2669.994142037365
Name: b7-- Salary: 2491.946021562958
Name: b38-- Salary: 2486.8019165588325
Name: b62-- Salary: 2377.2032236417076
Name: b40-- Salary: 2354.269590090062
Name: b79-- Salary: 2338.025378709726
Name: b63-- Salary: 2294.2397260055354
Name: b72-- Salary: 2279.306352799453
Name: b86-- Salary: 2222.5713467878613
Name: b91-- Salary: 2165.0116703108756
Selection Sorted list 100:
Name: b0-- Salary: 6586.084753016211
Name: b1-- Salary: 7436.620479830245
Name: b2-- Salary: 4742.962203859872
Name: b3-- Salary: 9359.734165876976
Name: b4-- Salary: 5643.827120381261
Name: b5-- Salary: 3639.1276767808704
Name: b6-- Salary: 9197.325568404387
Name: b7-- Salary: 2491.946021562958
Name: b8-- Salary: 4585.591942384123
Name: b9-- Salary: 5556.415437944449
Name: b10-- Salary: 8173.036497128695
Name: b11-- Salary: 5480.125462722863
Name: b12-- Salary: 8581.35494197972
Name: b13-- Salary: 7166.43267998424
Name: b14-- Salary: 8872.931059322773
Name: b15-- Salary: 5283.805820092741
Name: b16-- Salary: 8115.3983739027135
Name: b17-- Salary: 9514.826210345567
Name: b18-- Salary: 7981.655983073427
Name: b19-- Salary: 9691.02004957179
Name: b20-- Salary: 5860.076163044818
Name: b21-- Salary: 3843.318078018412
Name: b22-- Salary: 3911.784459786828
Name: b23-- Salary: 4632.725905415196
Name: b24-- Salary: 3333.499114725905
Name: b25-- Salary: 8271.353715853631
Name: b26-- Salary: 6678.550068279912
Name: b27-- Salary: 8564.850864191201
Name: b28-- Salary: 8436.914078885646
Name: b29-- Salary: 5891.154954727925
Name: b30-- Salary: 3333.7295780958175
Name: b31-- Salary: 2773.3741296296853
Name: b32-- Salary: 3210.139687283
Name: b33-- Salary: 5253.262163597976
Name: b34-- Salary: 5293.071551365345
Name: b35-- Salary: 8714.70182973785
Name: b36-- Salary: 7675.802137881441
Name: b37-- Salary: 9485.623134419235
Name: b38-- Salary: 2486.8019165588325
Name: b39-- Salary: 7876.953788057386
Name: b40-- Salary: 2354.269590090062
Name: b41-- Salary: 5900.294690224702
Name: b42-- Salary: 6190.168053535845
Name: b43-- Salary: 4418.686755695684
Name: b44-- Salary: 9106.121046445072
Name: b45-- Salary: 5751.869090519958
Name: b46-- Salary: 9479.67900523495
Name: b47-- Salary: 3721.0048119256317
Name: b48-- Salary: 5138.7081112578235
Name: b49-- Salary: 9862.801707009792
Name: b50-- Salary: 7682.693407684093
Name: b51-- Salary: 5224.970185445834
Name: b52-- Salary: 6603.86726980656
Name: b53-- Salary: 6179.920724107216
Name: b54-- Salary: 8794.265700877122
Name: b55-- Salary: 5358.723558324595
Name: b56-- Salary: 5890.120614880536
Name: b57-- Salary: 7884.538775271883
Name: b58-- Salary: 9723.714835277198
Name: b59-- Salary: 4053.744479092236
Name: b60-- Salary: 8790.773202711369
Name: b61-- Salary: 3481.7413821109812
Name: b62-- Salary: 2377.2032236417076
Name: b63-- Salary: 2294.2397260055354
Name: b64-- Salary: 9936.150172018919
Name: b65-- Salary: 9404.634420178449
Name: b66-- Salary: 3956.730831129523
Name: b67-- Salary: 8342.732576612532
Name: b68-- Salary: 7418.851936866526
Name: b69-- Salary: 6938.550865060909
Name: b70-- Salary: 6476.333699704278
Name: b71-- Salary: 8722.547420313445
Name: b72-- Salary: 2279.306352799453
Name: b73-- Salary: 8898.483091812812
Name: b74-- Salary: 3411.955287250118
Name: b75-- Salary: 2751.029597327944
Name: b76-- Salary: 3536.0898202220023
Name: b77-- Salary: 5251.292038620526
Name: b78-- Salary: 4503.408207386374
Name: b79-- Salary: 2338.025378709726
Name: b80-- Salary: 4696.455037937527
Name: b81-- Salary: 9003.568512175472
Name: b82-- Salary: 9117.082239350695
Name: b83-- Salary: 9973.352422701293
Name: b84-- Salary: 9204.258840738981
Name: b85-- Salary: 7944.373719769946
Name: b86-- Salary: 2222.5713467878613
Name: b87-- Salary: 7274.743797462349
Name: b88-- Salary: 4018.0093374559297
Name: b89-- Salary: 4449.469815218687
Name: b90-- Salary: 4915.187065264236
Name: b91-- Salary: 2165.0116703108756
Name: b92-- Salary: 8548.072685465482
Name: b93-- Salary: 6334.066007785089
Name: b94-- Salary: 5523.40895945136
Name: b95-- Salary: 2669.994142037365
Name: b96-- Salary: 8400.167799777922
Name: b97-- Salary: 8833.55387061282
Name: b98-- Salary: 9774.679055369
Name: b99-- Salary: 9552.173954155369
Time to sort data per n = 10
Other Sort: 0.007 Selectioin Sort: 0.001
Time to sort data per n = 100
Other Sort: 0.001 Selectioin Sort: 0.016
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.