Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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 -1

Explanation / 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