/** @file ordena1.cpp @author mp2 @brief Este es un fichero que se va autilizar en sucesivas sesiones de trabajo durante las prácticas. */ #include #include #include // Para manejar nums. aleatorios #include // Para fijar la semilla del generador de nums. aleat. /* Prototipos y constantes */ const int MAX=25; // Tamanio del vector const int MAX_LINE=10; // Máximo por línea const int MY_MAX_RAND=100; // Nums. aleatorios entre 0 y 99 /** @brief Rellena un vector de enteros con numeros aleatorios. @param p Un vector a rellenar @param tope El numero de elementos del vector \a p */ void llena_vector (int *p, int tope); /** @brief Muestra un vector de enteros tabulado en pantalla @param p Un vector a mostrar @param tope El numero de elementos del vector \a p */ void pinta_vector (int *p, int tope); /** @brief Ordena un vector de forma ascendente (metodo de la burbuja) @param p Un vector a ordenar @param tope El numero de elementos del vector */ void ordena_vector (int *p, int tope); /** @brief Intercambia los valores de dos variables enteras @param a Primera variable entera @param b Segunda variable entera */ void swap (int &a, int &b); int main (void) { int m [MAX]; // vector de trabajo /* Rellena completamente el vector m */ llena_vector (m, MAX); /* Muestra el vector m antes de ordenarlo */ cout << endl << "Vector original (Antes de ordenar): " << endl; pinta_vector (m, MAX); /* Ordena el vector m */ ordena_vector (m, MAX); /* Muestra el vector m despues de ordenarlo */ cout << endl << "Vector final (Despues de ordenar): " << endl; pinta_vector (m, MAX); cout << endl; return (0); } void llena_vector (int *p, int tope) { time_t t; // tipo definido en time.h int i; srand ((int) time(&t)); // Fija la semilla del generador: Inicializa el // generador de nums.aleat. con el reloj del sistema for (i=0; i p[j+1]) swap (p[j], p[j+1]); } void swap (int &a, int &b) { int tmp; tmp = a; a = b; b = tmp; }