Page principale | Liste des namespaces | Hiérarchie des classes | Liste des classes | Répertoires | Liste des fichiers | Membres de namespace | Membres de classe | Membres de fichier

sort.c

Aller à la documentation de ce fichier.
00001 /* sort.c 
00002  *    Test program to sort a large number of integers.
00003  *
00004  *    Intention is to stress virtual memory system.
00005  *
00006  *    Ideally, we could read the unsorted array off of the file system,
00007  *      and store the result back to the file system!
00008  */
00009 
00010 
00011 /*
00012 #define UNIX
00013 #define UNIX_DEBUG
00014 */
00015 
00016 #ifdef UNIX
00017 #include <stdio.h>
00018 #define Exit exit
00019 #else
00020 #include "syscall.h"
00021 #endif /* UNIX */
00022 
00023 #define SIZE (1024)
00024 
00025 int A[SIZE];    /* size of physical memory; with code, we'll run out of space!*/
00026 
00027 int
00028 main()
00029 {
00030     int i, j, tmp;
00031 
00032     /* first initialize the array, in reverse sorted order */
00033     for (i = 0; i < SIZE; i++) {
00034         A[i] = (SIZE-1) - i;
00035     }
00036 
00037     /* then sort! */
00038     for (i = 0; i < SIZE; i++) {
00039         for (j = 0; j < (SIZE-1); j++) {
00040            if (A[j] > A[j + 1]) {       /* out of order -> need to swap ! */
00041               tmp = A[j];
00042               A[j] = A[j + 1];
00043               A[j + 1] = tmp;
00044            }
00045         }
00046     }
00047 
00048 #ifdef UNIX_DEBUG
00049     for (i=0; i<SIZE; i++) {
00050         printf("%4d ", A[i]);
00051         if (((i+1) % 15) == 0) {
00052                 printf("\n");
00053         }
00054         if (A[i] != i) {
00055             fprintf(stderr, "Out of order A[%d] = %d\n", i, A[i]);
00056             Exit(1);
00057         }   
00058     }
00059     printf("\n");
00060 #endif /* UNIX_DEBUG */
00061 
00062     for (i=0; i<SIZE; i++) {
00063         if (A[i] != i) {
00064             Exit(1);
00065         }   
00066     }
00067 
00068     Exit(0);
00069 }

Généré le Sun Jan 15 00:45:45 2006 pour Système NachOS : par  doxygen 1.4.4