file now only read once

This commit is contained in:
2020-06-11 12:00:27 -05:00
parent 7f59fadc42
commit ba8820896e
9 changed files with 26 additions and 26 deletions

View File

@@ -138,33 +138,33 @@ public class AlgorithmTester{
boolean quickTWP=sortingAlgoChoices[5];
boolean merge=sortingAlgoChoices[6];
ArrayList<SortResult> results = new ArrayList<SortResult>();
RandomNumberFileReader reader = new RandomNumberFileReader(filename);
if(bubble){
BubbleSorter bubSorter = new BubbleSorter(filename);
BubbleSorter bubSorter = new BubbleSorter(reader);
results.add(bubSorter.measuredSort());
}
if(selection){
SelectionSorter selSorter = new SelectionSorter(filename);
SelectionSorter selSorter = new SelectionSorter(reader);
results.add(selSorter.measuredSort());
}
if(insertion){
InsertionSorter inSorter = new InsertionSorter(filename);
InsertionSorter inSorter = new InsertionSorter(reader);
results.add(inSorter.measuredSort());
}
if(counting){
CountingSorter countSorter = new CountingSorter(filename);
CountingSorter countSorter = new CountingSorter(reader);
results.add(countSorter.measuredSort());
}
if(quick){
QuickSorter qSorter = new QuickSorter(filename);
QuickSorter qSorter = new QuickSorter(reader);
results.add(qSorter.measuredSort());
}
if(quickTWP){
QuickSorterThreeWay qTWPSorter = new QuickSorterThreeWay(filename);
QuickSorterThreeWay qTWPSorter = new QuickSorterThreeWay(reader);
results.add(qTWPSorter.measuredSort());
}
if(merge){
MergeSorter mSorter = new MergeSorter(filename);
MergeSorter mSorter = new MergeSorter(reader);
results.add(mSorter.measuredSort());
}
for(SortResult e: results){

View File

@@ -3,8 +3,8 @@ package Sorting;
public class BubbleSorter extends Sorter{
//a class to sort arrays of numbers using bubble sort
public BubbleSorter(String filename){
super("bubble sort", filename);
public BubbleSorter(RandomNumberFileReader reader){
super("bubble sort", reader);
}
void sort(){

View File

@@ -4,8 +4,8 @@ import java.util.Arrays;
public class CountingSorter extends Sorter{
public CountingSorter(String filename){
super("counting sort", filename);
public CountingSorter(RandomNumberFileReader reader){
super("counting sort", reader);
}
void sort(){

View File

@@ -5,8 +5,8 @@ package Sorting;
public class InsertionSorter extends Sorter{
public InsertionSorter(String filename){
super("insertion sort", filename);
public InsertionSorter(RandomNumberFileReader reader){
super("insertion sort", reader);
}
void sort(){

View File

@@ -2,8 +2,8 @@ package Sorting;
public class MergeSorter extends Sorter{
public MergeSorter(String filename){
super("merge sort",filename);
public MergeSorter(RandomNumberFileReader reader){
super("merge sort",reader);
}
void sort(){

View File

@@ -2,12 +2,12 @@ package Sorting;
public class QuickSorter extends Sorter{
public QuickSorter(String filename){
super("quick sort", filename);
public QuickSorter(RandomNumberFileReader reader){
super("quick sort", reader);
}
public QuickSorter(String qsortVariant, String filename){
super(qsortVariant, filename);
public QuickSorter(String qsortVariant, RandomNumberFileReader reader){
super(qsortVariant, reader);
}
void sort(){

View File

@@ -6,8 +6,8 @@ package Sorting;
public class QuickSorterThreeWay extends QuickSorter{
public QuickSorterThreeWay(String filename){
super("quick sort (3-way partition)", filename);
public QuickSorterThreeWay(RandomNumberFileReader reader){
super("quick sort (3-way partition)", reader);
}
/*
void sort(){

View File

@@ -2,8 +2,8 @@ package Sorting;
public class SelectionSorter extends Sorter {
//a class to sort an array of numbers using selection sort
public SelectionSorter(String filename){
super("selection sort", filename);
public SelectionSorter(RandomNumberFileReader reader){
super("selection sort", reader);
}
void sort(){

View File

@@ -15,9 +15,9 @@ abstract class Sorter {
protected long comparisonsUsed = 0;
protected long writesUsed=0;
public Sorter(String st, String filename){
public Sorter(String st, RandomNumberFileReader reader){
sortType=st;
RandomNumberFileReader reader = new RandomNumberFileReader(filename);
//RandomNumberFileReader reader = new RandomNumberFileReader(filename);
numbers = new Integer[reader.getNumbers().size()];
reader.getNumbers().toArray(numbers);
}