82 lines
1.4 KiB
C
82 lines
1.4 KiB
C
// gcc qs.c -o qs && ./qs
|
|
// Basic tests for various quicksorts
|
|
|
|
#include <stdio.h>
|
|
#include "qsort.h"
|
|
#include "zssort.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);
|
|
}
|
|
|
|
int main() {
|
|
qs();
|
|
qsr();
|
|
zss();
|
|
qs3();
|
|
return 0;
|
|
}
|