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;
}