Advertisement
Guest User

Untitled

a guest
Aug 27th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.68 KB | None | 0 0
  1. #include "tp0.h"
  2. #include "stdio.h"
  3.  
  4. /* ******************************************************************
  5.  *                     FUNCIONES A COMPLETAR
  6.  * *****************************************************************/
  7.  
  8. /* swap() intercambia dos valores enteros.
  9.  */
  10. void swap (int* x, int* y) {
  11.     int i = *x;
  12.     *x = *y;
  13.     *y = i;
  14. }
  15.  
  16. /* maximo() busca el mayor elemento del arreglo y devuelve su posicion.
  17.  * Si el vector es de largo 0, devuelve -1.
  18.  */
  19. int maximo(int vector[], int n) {
  20.     if (n == 0){
  21.         return -1;
  22.     }
  23.     int mayor = 0;
  24.     for (int i = 1;i < n;i++){
  25.         if (vector[i] > vector[mayor]){
  26.             mayor = i;
  27.         }
  28.     }
  29.     return mayor;
  30. }
  31.  
  32. /* La función comparar recibe dos vectores y sus respectivas longitudes
  33.  * y devuelve -1 si el primer vector es menor que el segundo; 0 si son
  34.  * iguales; y 1 si el segundo es menor.
  35.  *
  36.  * Un vector es menor a otro cuando al compararlos elemento a elemento,
  37.  * el primer elemento en el que difieren no existe o es menor.
  38.  */
  39. int comparar(int vector1[], int n1, int vector2[], int n2) {
  40.     int resultado;
  41.     int largo;
  42.     if (n1 > n2){
  43.         largo = n2;
  44.         resultado = 1;
  45.     }
  46.     else {
  47.         largo = n1;
  48.         resultado = -1;
  49.     }
  50.     for (int i = 0; i < largo; i++){
  51.         if (vector1[i] > vector2[i]) {
  52.             return 1;
  53.         }
  54.         else if (vector1[i] < vector2[i]){
  55.             return -1;
  56.         }
  57.     }
  58.     if (n1 == n2) {
  59.         return 0;
  60.     }
  61.     else {
  62.         return resultado;
  63.     }
  64. }
  65.  
  66. /* selection_sort() ordena el arreglo recibido mediante el algoritmo de
  67.  * selección.
  68.  */
  69. void seleccion(int vector[], int n) {
  70.     for (int i = n; i > 0; i--){
  71.         int pos_max = maximo(vector, i);
  72.         int val_max = vector[pos_max];
  73.         vector[pos_max] = vector[i - 1];
  74.         vector[i - 1] = val_max;
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement