diff options
| author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-10-27 00:29:30 +0000 |
|---|---|---|
| committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-10-27 00:29:45 +0000 |
| commit | 964e001dd5db703f85d317a2912e44fdf1c7b08a (patch) | |
| tree | 99172308ca99f3dbe0143859a968a580681eb022 /impls/qsort.cpp | |
| parent | 03ba2096c1ba186d0b6045423d8d3de0f243ef37 (diff) | |
| download | algorithms-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.cpp | 35 |
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; } |
