aboutsummaryrefslogtreecommitdiff
path: root/impls/qsort.cpp
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-10-27 00:29:30 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-10-27 00:29:45 +0000
commit964e001dd5db703f85d317a2912e44fdf1c7b08a (patch)
tree99172308ca99f3dbe0143859a968a580681eb022 /impls/qsort.cpp
parent03ba2096c1ba186d0b6045423d8d3de0f243ef37 (diff)
downloadalgorithms-964e001dd5db703f85d317a2912e44fdf1c7b08a.tar.gz
algorithms-964e001dd5db703f85d317a2912e44fdf1c7b08a.tar.bz2
algorithms-964e001dd5db703f85d317a2912e44fdf1c7b08a.zip
qsort: generate random numbers in hand instead of reading them
Diffstat (limited to 'impls/qsort.cpp')
-rw-r--r--impls/qsort.cpp35
1 files changed, 16 insertions, 19 deletions
diff --git a/impls/qsort.cpp b/impls/qsort.cpp
index a230456..1b644bd 100644
--- a/impls/qsort.cpp
+++ b/impls/qsort.cpp
@@ -16,14 +16,14 @@
(A) ^= (B); \
} while (0)
-#define TEST_SIZE 20
+#define TEST_SIZE 10
void print_arr(int *arr, int size)
{
- printf("{");
- for (int i = 0; i < size - 1; ++i)
- printf("%d, ", arr[i]);
- printf("%d}", arr[size - 1]);
+ printf("{\n");
+ for (int i = 0; i < size; ++i)
+ printf(" %d,\n", arr[i]);
+ printf("}\n");
}
void quicksort(int *arr, int arr_size)
@@ -70,29 +70,26 @@ void quicksort(int *arr, int arr_size)
int main(void)
{
- int arr[TEST_SIZE] = {0};
- const int size = TEST_SIZE;
+ // randomly generate some numbers
- // Generate a completely reverse ordered list
- /*for (size_t i = 0; i < size; ++i) */
- /* arr[TEST_SIZE - i - 1] = i;*/
+ int *arr = new int[TEST_SIZE];
- // Generate a list where the first half is completely sorted and the
- // other half is in reverse order.
- for (size_t i = 0; i < size / 2; ++i)
- arr[i] = i;
- for (size_t i = size / 2; i < size; ++i)
- arr[TEST_SIZE - (i - size / 2) - 1] = i;
+ for (size_t i = 0; i < TEST_SIZE; ++i)
+ {
+ arr[i] = rand() % (2L << 30);
+ }
printf("Before: ");
- print_arr(arr, size);
+ print_arr(arr, TEST_SIZE);
printf("\n");
- quicksort(arr, size);
+ quicksort(arr, TEST_SIZE);
printf("After: ");
- print_arr(arr, size);
+ print_arr(arr, TEST_SIZE);
printf("\n");
+ delete[] arr;
+
return 0;
}