67 lines
1.8 KiB
Java
67 lines
1.8 KiB
Java
package Sorting;
|
|
|
|
import java.time.Duration;
|
|
/**
|
|
* This is a class to hold the efficiencty results of a sorter. We will use this
|
|
* because we can only have one return value from a method, but want to get more
|
|
* than one piece of data from each sorter.
|
|
*
|
|
* We will write several constructors for this class, as not all sorting algorithms
|
|
* will use all of the fields. For example, radix sort does not use comparisons.
|
|
* Counting sort does not use swaps.
|
|
*
|
|
* Writing several constructors for difference situations is an example of
|
|
* "polymorphism" -- the quality of object oriented design that lets a single
|
|
* interface have multiple implementations.
|
|
*
|
|
* The methods that call the constructor of SortResult don't know it has lots of
|
|
* them, they only know what data they have to give it.
|
|
*/
|
|
public class SortResult {
|
|
|
|
private String sortType;
|
|
private Integer [] sortedArray;
|
|
private String comparisonsUsed;
|
|
// private String swapsUsed;
|
|
private Duration timeUsed;
|
|
|
|
public SortResult(String st, Integer[] a, long c, Duration t){
|
|
sortType = st;
|
|
sortedArray = a;
|
|
if(c==0){
|
|
comparisonsUsed = "No";
|
|
}
|
|
else{
|
|
comparisonsUsed = Long.toString(c);
|
|
}
|
|
timeUsed = t;
|
|
}
|
|
|
|
public SortResult(String st, Integer[] a, Duration t){
|
|
sortType = st;
|
|
sortedArray = a;
|
|
timeUsed = t;
|
|
comparisonsUsed = "Unknown";
|
|
}
|
|
|
|
public String getSortType(){
|
|
return sortType;
|
|
}
|
|
|
|
public Integer[] getSortedArray(){
|
|
return sortedArray;
|
|
}
|
|
|
|
public Duration getTimeUsed(){
|
|
return timeUsed;
|
|
}
|
|
|
|
public String getComparisonsUsed(){
|
|
return comparisonsUsed;
|
|
}
|
|
|
|
//public String getSwapsUsed(){
|
|
//return swapsUsed;
|
|
//}
|
|
|
|
} |