timealgorithms.cxx 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include <cstdio>
  2. #include <iostream>
  3. #include <string>
  4. #include <fstream>
  5. #include <sstream>
  6. #include <ctime>
  7. #include <vector>
  8. #include "json.hpp"
  9. #include "timealgorithms.h"
  10. int main(int argc, char* argv[]) {
  11. // read JSON file and store in jsonObject
  12. std::ifstream file;
  13. file.open(argv[1]);
  14. nlohmann::json jsonObject;
  15. // Store the contents filename into jsonObject
  16. if (file.is_open()) {
  17. file >> jsonObject;
  18. }
  19. // initialize array for JSON data
  20. //int n = jsonObject["metadata"]["arraySize"];
  21. std::vector<int>* sampleArray = new std::vector<int>();
  22. // initialize insertion sort variables
  23. int insComparisonCounter;
  24. int insMemAccessCounter;
  25. //double insTime;
  26. // initialize merge sort variables
  27. //int *merComparisonCounter;
  28. //int *merMemAccessCounter;
  29. //double merTime;
  30. // initialize quick sort variables
  31. //int *quickComparisonCounter;
  32. //int *quickMemAccessCounter;
  33. //double quickTime;
  34. std::string sampleName; // Sample key name to iterate
  35. for (auto itr = jsonObject.begin(); itr != jsonObject.end(); ++itr) {
  36. sampleName = itr.key();
  37. //int arrayElement = 0;
  38. if (sampleName != "metadata") {
  39. for (auto arrayItr = jsonObject[sampleName].begin(); arrayItr != jsonObject[sampleName].end(); ++arrayItr) {
  40. //sampleArray[arrayElement] = *arrayItr;
  41. //sampleArray.push_back(*arrayItr);
  42. sampleArray -> push_back(*arrayItr);
  43. //arrayElement++;
  44. }
  45. }
  46. }
  47. for (auto const &element: *sampleArray){
  48. std::cout << element << ' ' << std::endl;
  49. }
  50. InsertionSort(sampleArray, &insComparisonCounter, &insMemAccessCounter);
  51. //QuickSort(*underlyingSampleArray, *insComparisonCounter, *insMemAccessCounter);
  52. //MergeSort(*underlyingSampleArray, *insComparisonCounter, *insMemAccessCounter);
  53. //std::cout << "insertion sort memory access counter: " << insMemAccessCounter <<std::endl;
  54. //std::cout << "insertion sort comparison counter: " << insComparisonCounter << std::endl;
  55. // initiate CSV file to which data will be written
  56. //std::ofstream theFile;
  57. //theFile.open("timingalgorithms.csv");
  58. //theFile << "Sample,InsertionSortTime,InsertionSortCompares,InsertionSortMemaccess,MergeSortTime,MergeSortCompares,MergeSortMemaccess,QuickSortTime,QuickSortCompares,QuickSortMemaccess,\n";
  59. //theFile.close();
  60. return 0;
  61. }