Browse Source

all three executables are giving the same answers as the results from the Prof's examples

Natalie Pueyo 8 years ago
parent
commit
d117883c2b
4 changed files with 23 additions and 28 deletions
  1. 0 1
      mergesort.cpp
  2. 6 0
      quicksort.cpp
  3. 10 10
      timealgorithms.csv
  4. 7 17
      timealgorithms.cxx

+ 0 - 1
mergesort.cpp

@@ -12,7 +12,6 @@ int* MergeSort(std::vector<int>* numbers) {
   int comparisonCounter = 0;
   int memAccessCounter = 0;
   static int returnCounters[2];
-  std::cout << "new sample" << std::endl;
 
   MergeSortRecurse(numbers, 0, numbers->size() - 1, &comparisonCounter, &memAccessCounter);
 

+ 6 - 0
quicksort.cpp

@@ -63,6 +63,9 @@ int Partition(std::vector<int>* numbers, int i, int k, int *comparisonCounter, i
         *memAccessCounter = *memAccessCounter + 1;
          ++l;
       }
+      // count the last loop's comparisons
+      *comparisonCounter = *comparisonCounter + 1;
+      *memAccessCounter = *memAccessCounter + 1;
 
       /* Decrement h while pivot < numbers[h] */
       while (pivot < (*numbers)[h]) {
@@ -70,6 +73,9 @@ int Partition(std::vector<int>* numbers, int i, int k, int *comparisonCounter, i
         *memAccessCounter = *memAccessCounter + 1;
          --h;
       }
+      // count the last loop's comparisons
+      *comparisonCounter = *comparisonCounter + 1;
+      *memAccessCounter = *memAccessCounter + 1;
 
       /* If there are zero or one elements remaining,
        all numbers are partitioned. Return h */

+ 10 - 10
timealgorithms.csv

@@ -1,11 +1,11 @@
 Sample,InsertionSortTime,InsertionSortCompares,InsertionSortMemaccess,MergeSortTime,MergeSortCompares,MergeSortMemaccess,QuickSortTime,QuickSortCompares,QuickSortMemaccess
-Sample01,0,28,132,0,24,162,0,14,59
-Sample02,0,37,186,0,23,160,0,15,64
-Sample03,0,17,66,0,23,160,0,18,51
-Sample04,0,23,102,0,24,162,0,25,58
-Sample05,0,27,126,0,23,160,0,15,56
-Sample06,0,39,198,0,22,158,0,15,64
-Sample07,0,20,84,0,21,156,0,21,50
-Sample08,0,27,126,0,23,160,0,16,65
-Sample09,0,33,162,0,21,156,0,18,59
-Sample10,0,32,156,0,23,160,0,13,58
+Sample01,0,28,132,0,24,184,0,50,95
+Sample02,0,37,186,0,23,182,0,53,102
+Sample03,0,17,66,0,23,182,0,48,81
+Sample04,0,23,102,0,24,184,0,55,88
+Sample05,0,27,126,0,23,182,0,49,90
+Sample06,0,39,198,0,22,180,0,53,102
+Sample07,0,20,84,0,21,178,0,49,78
+Sample08,0,27,126,0,23,182,0,54,103
+Sample09,0,33,162,0,21,178,0,52,93
+Sample10,0,32,156,0,23,182,0,49,94

+ 7 - 17
timealgorithms.cxx

@@ -34,16 +34,16 @@ int main(int argc, char* argv[]) {
 
   // initialize insertion sort variables
   int *insReturnArray;
-  double insStartTime;
-  double insTime;
+  time_t insStartTime;
+  time_t insTime;
   // initialize merge sort variables
   int *mergeReturnArray;
-  double merStartTime;
-  double merTime;
+  time_t merStartTime;
+  time_t merTime;
   // initialize quick sort variables
   int *quickReturnArray;
-  double quickStartTime;
-  double quickTime;
+  time_t quickStartTime;
+  time_t quickTime;
 
   std::string sampleName;     // Sample key name to iterate
 
@@ -63,9 +63,6 @@ int main(int argc, char* argv[]) {
       insStartTime = time(0);
       insReturnArray = InsertionSort(insArray);
       insTime = time(0) - insStartTime;
-      std::cout << "insertion sort comparison counter: " << *insReturnArray << std::endl;
-      std::cout << "insertion sort memory access counter: " << *(insReturnArray + 1) << std::endl;
-      std::cout << "wallclock time for insertion sort: " << insTime << std::endl;
       // Add the insertion sort data to the CSV file line
       theFile << insTime << "," << *insReturnArray << "," << *(insReturnArray + 1) << "," ;
 
@@ -73,9 +70,6 @@ int main(int argc, char* argv[]) {
       merStartTime = time(0);
       mergeReturnArray = MergeSort(merArray);
       merTime = time(0) - merStartTime;
-      std::cout << "merge sort comparison counter: " << *mergeReturnArray << std::endl;
-      std::cout << "merge sort memory access counter: " << *(mergeReturnArray + 1) << std::endl;
-      std::cout << "wallclock time for merge sort: " << merTime << std::endl;
       // Add the merge sort data to the CSV file line
       theFile << merTime << "," << *mergeReturnArray << "," << *(mergeReturnArray + 1) << "," ;
 
@@ -83,15 +77,11 @@ int main(int argc, char* argv[]) {
       quickStartTime = time(0);
       quickReturnArray = QuickSort(quickArray);
       quickTime = time(0) - quickStartTime;
-      std::cout << "quick sort comparison counter: " << *quickReturnArray << std::endl;
-      std::cout << "quick sort memory access counter: " << *(quickReturnArray + 1) << std::endl;
-      std::cout << "wallclock time for quick sort: " << quickTime << std::endl;
-      std::cout << std::endl;
       // Add the quick sort data to the CSV file line
       theFile << quickTime << "," << *quickReturnArray << "," << *(quickReturnArray + 1);
       theFile << "\n";
 
-      // clear the array for the next sample
+      // clear the arrays for the next sample
       insArray -> clear();
       merArray -> clear();
       quickArray -> clear();