diff options
| -rw-r--r-- | Makefile | 3 | ||||
| -rw-r--r-- | impls/qsort.cpp | 35 |
2 files changed, 19 insertions, 19 deletions
@@ -15,6 +15,9 @@ list.out: impls/list.cpp bsearch.out: impls/bsearch.cpp $(CC) $(CFLAGS) $^ -o $@ +qsort.out: impls/qsort.cpp + $(CC) $(CFLAGS) $^ -o $@ + vec.out: impls/vec.c $(CC) $(CFLAGS) $^ -o $@ 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; } |
