Proyecto de ordenamiento para el curso de Análisis y Diseño de Algoritmos.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

#### 80 lines 1.6 KiB Raw Blame History

 `#include ` `#include ` `#include ` `#include ` `#include "random.h"` `#include "bubble_sort.h"` `static int *test_case;` `static int *test_array;` `static int *qarray;` `/**` ` * Este función va a comparar valores para devolver los valores en orden ascendida` ` * @param a El primer valor a comparar` ` * @param b El segundo valor a comparar` ` * @return Retorna la comparación de los dos argumentos` ` */` `int compar(const void *a, const void *b) {` ` return (*(int*) a - *(int*) b);` `}` `/**` ` * Limpiar la memoria al salir` ` */` `void cleanup() {` ` free(test_case);` ` free(test_array);` ` free(qarray);` `}` `/**` ` * El programa de test` ` */` `int main(int argc, char **argv) {` ` int n = 50000;` ` int i;` ` int gen;` ` test_case = malloc(sizeof(int) * n);` ` qarray = malloc(sizeof(int) * n);` ` test_array = malloc(sizeof(int) * n);` ` atexit(cleanup);` ` fprintf(stdout, "Running tests:\n");` ` // Test random number generation` ` fprintf(stdout, "\trandom generation: ");` ` fflush(stdout);` ` for (i = 0; i < 5000000; i++) {` ` gen = gen_rand(-1000, 1000);` ` if (gen < -1000 || gen > 1000) {` ` fprintf(stdout, "fail\n");` ` return 1;` ` }` ` }` ` fprintf(stdout, "pass\n");` ` // Prepare for sort tests` ` for (i = 0; i < n; i++) {` ` test_case[i] = gen_rand(-20, 100);` ` }` ` memcpy(qarray, test_case, sizeof(int) * n);` ` memcpy(test_array, test_case, sizeof(int) * n);` ` qsort(qarray, n, sizeof(int), compar);` ` // Test bubble sort` ` fprintf(stdout, "\tbubble sort: ");` ` fflush(stdout);` ` bubble_sort(test_array, n);` ` for (i = 0; i < n; i++) {` ` if (test_array[i] != qarray[i]) {` ` fprintf(stdout, "fail\n");` ` return 1;` ` }` ` }` ` fprintf(stdout, "pass\n");` ` return 0;` ```} ``` ``` ```