// gcc qs.c -o qs && ./qs // Basic tests for various quicksorts #include #include "qsort.h" #include "zssort.h" #include "schwab_sort.h" // function to print array elements void printArray(int array[], int size) { for (int i = 0; i < size; ++i) { printf("%d ", array[i]); } printf("\n"); } // qs test function void qs() { #include "data.inc" int n = sizeof(data) / sizeof(data[0]); printf("(qs) Unsorted Array\n"); printArray(data, n); // perform quicksort on data quicksort(data, 0, n - 1); printf("(qs) Sorted array in ascending order: \n"); printArray(data, n); } // qsr test function void qsr() { #include "data.inc" int n = sizeof(data) / sizeof(data[0]); // perform quicksort on data rpivotstate state; quicksort_rand(data, 0, n - 1, &state); printf("(qsr) Sorted array in ascending order: \n"); printArray(data, n); } // zss test function void zss() { #include "data.inc" int n = sizeof(data) / sizeof(data[0]); // perform zssort on data zssort(data, 0, n - 1); printf("(zss) Sorted array in ascending order: \n"); printArray(data, n); } // qs3 test function void qs3() { #include "data.inc" int n = sizeof(data) / sizeof(data[0]); // memory junnnk is enough rpivotstate rand; // perform qs3 on data quicksort_rand3(data, 0, n - 1, &rand); printf("(qs3) Sorted array in ascending order: \n"); printArray(data, n); } void qs3_sp() { #include "data.inc" int n = sizeof(data) / sizeof(data[0]); // memory junnnk is enough rpivotstate rand; // perform qs3 on data quicksort_rand3_sp(data, 0, n - 1, &rand); printf("(qs3_sp) Sorted array in ascending order: \n"); printArray(data, n); } void qs3_sp2() { #include "data.inc" int n = sizeof(data) / sizeof(data[0]); // memory junnnk is enough rpivotstate rand; // perform qs3 on data quicksort_rand3_sp2(data, 0, n - 1, &rand); printf("(qs3_sp2) Sorted array in ascending order: \n"); printArray(data, n); } void schwab() { #include "data.inc" int n = sizeof(data) / sizeof(data[0]); // memory junnnk is enough uint32_t junk; sch_rand_state rand = schwab_rand_state(junk); // perform sort on data schwab_sort(data, 0, n - 1, &rand); printf("(schwab) Sorted array in ascending order: \n"); printArray(data, n); } int main() { qs(); qsr(); zss(); qs3(); qs3_sp(); qs3_sp2(); schwab(); return 0; }