Files
ios2024/code/test/sort.c

70 lines
1.3 KiB
C

/* sort.c
* Test program to sort a large number of integers.
*
* Intention is to stress virtual memory system.
*
* Ideally, we could read the unsorted array off of the file system,
* and store the result back to the file system!
*/
/*
#define UNIX
#define UNIX_DEBUG
*/
#ifdef UNIX
#include <stdio.h>
#define Exit exit
#else
#include "syscall.h"
#endif /* UNIX */
#define SIZE (1024)
int A[SIZE]; /* size of physical memory; with code, we'll run out of space!*/
int
main()
{
int i, j, tmp;
/* first initialize the array, in reverse sorted order */
for (i = 0; i < SIZE; i++) {
A[i] = (SIZE-1) - i;
}
/* then sort! */
for (i = 0; i < SIZE; i++) {
for (j = 0; j < (SIZE-1); j++) {
if (A[j] > A[j + 1]) { /* out of order -> need to swap ! */
tmp = A[j];
A[j] = A[j + 1];
A[j + 1] = tmp;
}
}
}
#ifdef UNIX_DEBUG
for (i=0; i<SIZE; i++) {
printf("%4d ", A[i]);
if (((i+1) % 15) == 0) {
printf("\n");
}
if (A[i] != i) {
fprintf(stderr, "Out of order A[%d] = %d\n", i, A[i]);
Exit(1);
}
}
printf("\n");
#endif /* UNIX_DEBUG */
for (i=0; i<SIZE; i++) {
if (A[i] != i) {
Exit(1);
}
}
Exit(0);
}