{"id":26944692,"url":"https://github.com/sameerjain/sorting-algorithm-analyzer","last_synced_at":"2025-09-09T13:38:12.621Z","repository":{"id":87892801,"uuid":"585042803","full_name":"SameerJain/Sorting-Algorithm-Analyzer","owner":"SameerJain","description":"Project Leader, organized meetings and coordinated project to completion, Final grade: 100%. Assembled 61 C++ algorithm variations to sort data sets with a max size of 50,000. Compared CPU run time, read step counts, and analyzed trade-offs to find most efficient algorithms.","archived":false,"fork":false,"pushed_at":"2025-03-18T09:05:11.000Z","size":737,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T10:23:21.451Z","etag":null,"topics":["bubble-sort","heap","heapsort","insertion-sort","mergesort","quicksort","selection-sort","sorting-algorithms-implemented","timsort"],"latest_commit_sha":null,"homepage":"https://docs.google.com/presentation/d/1dUqu7pfOn9Nu4loHAPI2E4TWEKYWjL3cYrdwhP6J-YY/edit?usp=sharing","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SameerJain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-04T07:04:30.000Z","updated_at":"2025-03-18T09:05:15.000Z","dependencies_parsed_at":"2025-03-18T10:22:57.818Z","dependency_job_id":"83bb6762-5597-492a-9457-7e5e270fdf15","html_url":"https://github.com/SameerJain/Sorting-Algorithm-Analyzer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJain%2FSorting-Algorithm-Analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJain%2FSorting-Algorithm-Analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJain%2FSorting-Algorithm-Analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SameerJain%2FSorting-Algorithm-Analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SameerJain","download_url":"https://codeload.github.com/SameerJain/Sorting-Algorithm-Analyzer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246866087,"owners_count":20846496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bubble-sort","heap","heapsort","insertion-sort","mergesort","quicksort","selection-sort","sorting-algorithms-implemented","timsort"],"created_at":"2025-04-02T18:18:04.160Z","updated_at":"2025-04-02T18:18:04.672Z","avatar_url":"https://github.com/SameerJain.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sorting-Algorithm-Analyzer\nSameer Jain - Project leader \n\n• Organized meetings and coordinated project to completion, Final grade: 100%.\n\n• Assembled 61 C++ algorithm variations to sort data sets with a max size of 50,000.\n\n• Compared CPU run time, read step counts, and analyzed trade-offs to find the most efficient algorithms.\n\nPresentation:\nhttps://docs.google.com/presentation/d/1dUqu7pfOn9Nu4loHAPI2E4TWEKYWjL3cYrdwhP6J-YY/edit?usp=sharing\n\nCPU Data:\nhttps://docs.google.com/spreadsheets/d/1vWTPmyX2VwndZPcjbfmm-3cxkEMoKYH00fI44v1fscg/edit?usp=sharing\n\nVideo Demonstration:\nhttps://youtu.be/8OGSf1p1Aqs\n\nTo Compile:\nstep 1: Copy code for desired part (1 or 2) and paste into main\nstep 2: g++ main.cpp -o main\nstep 3: ./main\n\nInput this into int main(): \n\n```\n  // TASK 1 OUTPUT\n  cout \u003c\u003c \"=========TASK 1==============\\n\";\n\n  for (int i = 0; i \u003c= 7; i++)\n  {\n    // Initialization and printArray\n    Size = dataSetSizes[i];\n    cout \u003c\u003c \"Current Size:\" \u003c\u003c Size \u003c\u003c endl;\n    int *tempArr = newPermutArray(Size);\n    cout \u003c\u003c \"Original Array:\\n\";\n    printArray(tempArr, Size);\n    // BUBBLE SORT\n    cout \u003c\u003c \"=======BUBBLE SORT:============\\n\";\n    cout \u003c\u003c \"Bubble Sort A = \";\n    func_eval(tempArr, Size, bubbleSortA);\n    bubbleSortAS(tempArr, Size);\n    cout \u003c\u003c \"Bubble Sort B = \";\n    func_eval(tempArr, Size, bubbleSortB);\n    bubbleSortBS(tempArr, Size);\n    // INSERTION SORT\n    cout \u003c\u003c \"=======INSERTION SORT:============\\n\";\n    cout \u003c\u003c \"Insertion Sort A = \";\n    func_eval(tempArr, Size, insertionSortA);\n    insertionSortAS(tempArr, Size);\n    cout \u003c\u003c \"Insertion Sort B = \";\n    func_eval(tempArr, Size, insertionSortB);\n    insertionSortBS(tempArr, Size);\n    // SELECTION SORT\n    cout \u003c\u003c \"=======SELECTION SORT:============\\n\";\n    cout \u003c\u003c \"Selection Sort A = \";\n    func_eval(tempArr, Size, selectionSortA);\n    selectionSortAS(tempArr, Size);\n    cout \u003c\u003c \"Selection Sort B = \";\n    func_eval(tempArr, Size, selectionSortB);\n    selectionSortBS(tempArr, Size);\n    // HEAP SORT\n    cout \u003c\u003c \"=======HEAP SORT:================\\n\";\n    cout \u003c\u003c \"Heap Sort A = \";\n    func_eval(tempArr, Size, heapSortA);\n    heapSortAS(tempArr, Size);\n    cout \u003c\u003c \"Heap Sort B = \";\n    func_eval(tempArr, Size, heapSortB);\n    heapSortBS(tempArr, Size);\n    // MERGESORT\n    cout \u003c\u003c \"=======MERGESORT:================\\n\";\n    cout \u003c\u003c \"Merge Sort A = \";\n    func_eval2(tempArr, 0, Size - 1, mergeSortA);\n    func_evalStepsMQ(tempArr, 0, Size - 1, mergeSortAS);\n    cout \u003c\u003c \"Merge Sort B = \";\n    func_eval2(tempArr, 0, Size - 1, mergeSortB);\n    func_evalStepsMQ(tempArr, 0, Size - 1, mergeSortBS);\n    // Merge Insertion\n    cout \u003c\u003c \"Merge-Insertion Sort A = \";\n    func_evalMergeIns(tempArr, 0, Size - 1, Size * 0.01, mergeInsertionSortA);\n    func_evalMergeInsSteps(tempArr, 0, Size - 1, Size * 0.01, mergeInsertionSortAS);\n    cout \u003c\u003c \"Merge-Insertion Sort B = \";\n    func_evalMergeIns(tempArr, 0, Size - 1, Size * 0.01, mergeInsertionSortB);\n    func_evalMergeInsSteps(tempArr, 0, Size - 1, Size * 0.01, mergeInsertionSortBS);\n    // QUICKSORT\n    cout \u003c\u003c \"=======QUICKSORT:================\\n\";\n    // Hoarse\n    cout \u003c\u003c \"Quick Sort A (HOARSE)= \";\n    func_eval2(tempArr, 0, Size - 1, quickSortHA);\n    func_evalStepsMQ(tempArr, 0, Size - 1, quickSortHAS);\n    cout \u003c\u003c \"Quick Sort B (HOARSE)= \";\n    func_eval2(tempArr, 0, Size - 1, quickSortHB);\n    func_evalStepsMQ(tempArr, 0, Size - 1, quickSortHBS);\n    //  Lamuto\n    cout \u003c\u003c \"Quick Sort A (LAMUTO)= \";\n    func_eval2(tempArr, 0, Size - 1, QuicksortLA);\n    func_evalStepsMQ(tempArr, 0, Size - 1, QuicksortLAS);\n    cout \u003c\u003c \"Quick Sort B (LAMUTO)= \";\n    func_eval2(tempArr, 0, Size - 1, QuicksortLB);\n    func_evalStepsMQ(tempArr, 0, Size - 1, QuicksortLBS);\n\n    delete[] tempArr;\n    BaseArr.clear();\n  } ```\n\n// PART 2 \n\n  cout \u003c\u003c \"=========TASK 2==============\\n\";\n  for (int i = 0; i \u003c 8; i++)\n  {\n    Size = dataSetSizes[i];\n\n    cout \u003c\u003c \"\\n\\n\\nCurrent Size: \" \u003c\u003c Size \u003c\u003c endl\n         \u003c\u003c endl;\n\n    for (int j = 1; j \u003c= 50; j++)\n    {\n      int *tempArr = newRandArray(Size);\n      // BUBBLE SORT\n      cout \u003c\u003c \"=======BUBBLE SORT:============\\n\";\n      cout \u003c\u003c \"Time\\n\";\n      func_eval(tempArr, Size, bubbleSortA);\n      cout \u003c\u003c \"Steps\\n\";\n      bubbleSortAS(tempArr, Size);\n      // INSERTION SORT\n      cout \u003c\u003c \"=======INSERTION SORT:============\\n\";\n      cout \u003c\u003c \"Time\\n\";\n      func_eval(tempArr, Size, insertionSortA);\n      cout \u003c\u003c \"Steps\\n\";\n      insertionSortAS(tempArr, Size);\n\n      // SELECTION SORT\n      cout \u003c\u003c \"=======SELECTION SORT:============\\n\";\n      cout \u003c\u003c \"Time\\n\";\n      func_eval(tempArr, Size, selectionSortA);\n      cout \u003c\u003c \"Steps\\n\";\n      selectionSortAS(tempArr, Size);\n\n      // HEAP SORT\n      cout \u003c\u003c \"=======HEAP SORT:============\\n\";\n      cout \u003c\u003c \"Time\\n\";\n      func_eval(tempArr, Size, heapSortA);\n      cout \u003c\u003c \"Steps\\n\";\n      heapSortAS(tempArr, Size);\n\n      // MERGE SORT\n      cout \u003c\u003c \"=======MERGE SORT:============\\n\";\n      cout \u003c\u003c \"Time\\n\";\n      func_eval2(tempArr, 0, Size - 1, mergeSortA);\n      cout \u003c\u003c \"Steps\\n\";\n      func_evalStepsMQ(tempArr, 0, Size - 1, mergeSortAS);\n\n      // MERGE-Insertion SORT\n      cout \u003c\u003c \"=======MERGE INSERTION SORT:============\\n\";\n      cout \u003c\u003c \"Time\\n\";\n      func_evalMergeIns(tempArr, 0, Size - 1, Size * 0.01, mergeInsertionSortA);\n      cout \u003c\u003c \"Steps\\n\";\n      func_evalMergeInsSteps(tempArr, 0, Size - 1, Size * 0.01, mergeInsertionSortAS);\n\n      // QUICKSORT SORT HOARSE\n      cout \u003c\u003c \"=======QUICK SORT HOARSE:============\\n\";\n      cout \u003c\u003c \"Time\\n\";\n      func_eval2(tempArr, 0, Size - 1, quickSortHA);\n      cout \u003c\u003c \"Steps\\n\";\n      func_evalStepsMQ(tempArr, 0, Size - 1, quickSortHAS);\n\n      // QUICKSORT SORT LAMUTO\n      cout \u003c\u003c \"=======QUICK SORT LAMUTO:============\\n\";\n      cout \u003c\u003c \"Time\\n\";\n      func_eval2(tempArr, 0, Size - 1, QuicksortLA);\n      cout \u003c\u003c \"Steps\\n\";\n      func_evalStepsMQ(tempArr, 0, Size - 1, QuicksortLAS);\n\n      delete[] tempArr;\n      BaseArr.clear();\n    }\n  }\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsameerjain%2Fsorting-algorithm-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsameerjain%2Fsorting-algorithm-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsameerjain%2Fsorting-algorithm-analyzer/lists"}