aboutsummaryrefslogtreecommitdiff
path: root/impls
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-10-27 23:09:56 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-10-27 23:09:56 +0000
commit79249027cb636f8171bd3773aff833c853ee5cea (patch)
tree5d5e5756f6d814f0908ddcccdb7fe1a6de4bb0a6 /impls
parent946006096b7ed4210e3f5aa1cb4ac0c1174019fa (diff)
downloadalgorithms-79249027cb636f8171bd3773aff833c853ee5cea.tar.gz
algorithms-79249027cb636f8171bd3773aff833c853ee5cea.tar.bz2
algorithms-79249027cb636f8171bd3773aff833c853ee5cea.zip
qsort: add another way to read numbers and test
Diffstat (limited to 'impls')
-rw-r--r--impls/qsort.cpp31
1 files changed, 23 insertions, 8 deletions
diff --git a/impls/qsort.cpp b/impls/qsort.cpp
index 19272c5..9f6b1c7 100644
--- a/impls/qsort.cpp
+++ b/impls/qsort.cpp
@@ -6,6 +6,9 @@
*/
#include <cstdio>
#include <cstdlib>
+#include <fstream>
+#include <iostream>
+#include <vector>
#define ARR_SIZE(XS) (sizeof(XS) / sizeof((XS)[0]))
#define SWAP(A, B) \
@@ -50,25 +53,37 @@ void quicksort(int *arr, int arr_size)
}
}
-int main(void)
+int main(int argc, char *argv[])
{
- // randomly generate some numbers
+ (void)argc;
+ (void)argv;
- int *arr = new int[TEST_SIZE];
+#define TEST_SIZE 10
+ // randomly generate some numbers
+ int *arr = new int[TEST_SIZE];
+ int arr_size = TEST_SIZE;
for (size_t i = 0; i < TEST_SIZE; ++i)
- {
arr[i] = rand() % (2L << 30);
- }
+
+ // Use nums.txt
+ // std::ifstream input(argc > 1 ? argv[1] : "nums.txt");
+ // std::vector<int> num_vec;
+
+ // for (std::string line; std::getline(input, line);
+ // num_vec.push_back(std::stoi(line)))
+ // continue;
+ // int *arr = &num_vec[0];
+ // int arr_size = num_vec.size();
printf("Before: ");
- print_arr(arr, TEST_SIZE);
+ print_arr(arr, arr_size);
printf("\n");
- quicksort(arr, TEST_SIZE);
+ quicksort(arr, arr_size);
printf("After: ");
- print_arr(arr, TEST_SIZE);
+ print_arr(arr, arr_size);
printf("\n");
delete[] arr;