Algoritmo Bubble Sort → Para Pocos Datos

//? Algoritmo de Bubble Sort
//? Función

#include "stdio.h"
#include "stdlib.h"

void cambiar_pos(int *n1, int *n2){
    int temp = *n1;
    *n1 = *n2;
    *n2 = temp;
}

void bubbleSort_asc(int vector_entrada[],int n){
    int i,j;
    for(i=0; i<n-1; i++){
        for(j=0; j<n-i-1;j++){

            if(vector_entrada[j] > vector_entrada[j+1])
                cambiar_pos(&vector_entrada[j],&vector_entrada[j+1]);
        }
    }
}

void bubbleSort_des(int vector_entrada[],int n){
    int i,j;
    for(i=0; i<n-1; i++){
        for(j=0; j<n-i-1;j++){

            if(vector_entrada[j] < vector_entrada[j+1])
                cambiar_pos(&vector_entrada[j],&vector_entrada[j+1]);
        }
    }
}

int print(int vector_entrada[], int n){
    int i;
    printf("[ ");
    for(i=0; i<n;i++)
        printf("%d  ", vector_entrada[i]);
    printf("]");
    printf("\n Fin del ordenamiento\n");
}

int main(int argc, char const *argv[])
{
    int vector_entrada[10] = {100, 1992, 0, 5, -1, 60, 70, 15, 14, 10};
    int n = sizeof(vector_entrada)/sizeof(vector_entrada[0]);

    bubbleSort_asc(vector_entrada,n);
    print(vector_entrada,n);
    printf("\n");

    bubbleSort_des(vector_entrada,n);
    print(vector_entrada,n);
    printf("\n");
    return 0;
}

Algoritmo Insertion Sort → Para Pocos Datos

#include <stdio.h> 
#include <math.h> 
  
/* Función de insertion Sort*/
void insertionSort_asc(int arr[], int n) 
{ 
   int i, currentVal, j; 
   for (i = 1; i < n; i++) 
   { 
       currentVal= arr[i]; //obtenemos el valor actual a comparar
       j = i-1;
  
       /* mueve los elementos del arreglo arr[0..i-1],que son mayores que el valor de la posición actual del recorrido, a una posición adelante de su posición actual */
       while (j >= 0 && arr[j] > currentVal) 
       { 
           arr[j+1] = arr[j]; 
           j = j-1; 
       } 
       arr[j+1] = currentVal; 
   } 
} 

void insertionSort_des(int arr[], int n) 
{ 
   int i, currentVal, j; 
   for (i = 1; i < n; i++) 
   { 
       currentVal= arr[i]; //obtenemos el valor actual a comparar
       j = i-1;
  
       /* mueve los elementos del arreglo arr[0..i-1],que son mayores que el valor de la posición actual del recorrido, a una posición adelante de su posición actual */
       while (j >= 0 && arr[j] < currentVal) 
       { 
           arr[j+1] = arr[j]; 
           j = j-1; 
       } 
       arr[j+1] = currentVal; 
   } 
} 
  
// función auxiliar para imprimir un arrary de tamaño n 
int print(int vector_entrada[], int n){
    int i;
    printf("[ ");
    for(i=0; i<n;i++)
        printf("%d  ", vector_entrada[i]);
    printf("]");
    printf("\n Fin del ordenamiento \n");
}
  
  
  
/* Driver program to test insertion sort */
int main() 
{ 
    int arr[] = {6, 4, 3, 11, 10}; 
    int n = sizeof(arr)/sizeof(arr[0]); 
  
    insertionSort_asc(arr, n); 
    print(arr, n); 

    insertionSort_des(arr, n); 
    print(arr, n); 
  
    return 0; 
}