myqsort/qs.c

132 lines
2.4 KiB
C
Raw Normal View History

// gcc qs.c -o qs && ./qs
// Basic tests for various quicksorts
#include <stdio.h>
#include "qsort.h"
#include "zssort.h"
2025-05-08 21:47:30 +02:00
#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);
}
2025-05-08 21:47:30 +02:00
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();
2025-05-08 21:47:30 +02:00
schwab();
return 0;
}