diff --git a/Sorting/AlgorithmTester.java b/Sorting/AlgorithmTester.java index 9a0d2ca..1c9035c 100644 --- a/Sorting/AlgorithmTester.java +++ b/Sorting/AlgorithmTester.java @@ -192,6 +192,82 @@ public class AlgorithmTester{ } private static void sortWordFile(){ - //String filename; + String filename; + int input; + boolean ready=false; + boolean print=false; + String[] sortingAlgoNames = {"selection sort", "insertion sort"}; + boolean[] sortingAlgoChoices = new boolean[sortingAlgoNames.length]; + System.out.print("\nPlease enter file name: "); + filename = sc.next(); + RandomWordFileReader reader = new RandomWordFileReader(filename); + while(!ready){ + try{ + System.out.println("\nEnter the number of an algorithm you wish to use."); + System.out.println("Enter the number again to deselect an algorithm."); + for(int i=0;i "); + } + System.out.print(sortingAlgoNames[i]+"\n"); + } + System.out.println("Enter 0 to continue when all desired algorithms have been selected."); + input = sc.nextInt(); + if(input>0&&input<=sortingAlgoChoices.length){ + sortingAlgoChoices[input-1]=!sortingAlgoChoices[input-1]; + } + else if(input==0){ + ready=true; + } + else{ + System.out.println("Invalid input"); + } + }catch(InputMismatchException ex){ + System.out.println("Invalid input"); + sc.next(); + } + } + try{ + System.out.println("\nPrint sorted list?"); + System.out.println("1) Yes"); + System.out.println("2) No"); + input = sc.nextInt(); + switch(input){ + case 1 -> print=true; + case 2 -> print=false; + default -> System.out.println("Invalid input, defaulting to no"); + } + }catch(InputMismatchException ex){ + System.out.println("Invalid input, defaulting to no"); + sc.next(); + } + boolean selection = sortingAlgoChoices[0]; + boolean insertion = sortingAlgoChoices[1]; + ArrayList results = new ArrayList(); + if(selection){ + //WordSelectionSorter selSorter = new NumberSelectionSorter(reader); + //results.add(selSorter.measuredSort()); + } + if(insertion){ + WordInsertionSorter inSorter = new WordInsertionSorter(reader); + results.add(inSorter.measuredSort()); + } + for(WordSortResult e: results){ + if(e!=null){ + if(print){ + for(String i: e.getSortedArray()){ + System.out.print(i+" "); + } + System.out.print("\n"); + } + System.out.println("\n"+e.getSortType()+" of "+e.getSortCount()+" words from "+e.getMin()+" to "+e.getMax()+" took:"); + System.out.println(e.getComparisonsUsed()+" comparisons"); + System.out.println(e.getWritesUsed()+" write operations"); + System.out.println(e.getTimeUsed()+" milliseconds"); + } + } + } } \ No newline at end of file