Métodos de ordenamiento de datos

Los métodos de ordenamiento de datos son algoritmos que reordenan los datos de una estructura para que queden en una secuencia determinada. Se utilizan en programación y ciencias de la computación para optimizar procesos y hacer que los datos sean más legibles para los humanos. 

 Algunos de los métodos de ordenamiento más comunes son:

  • Método de ordenamiento de la burbuja (BubbleSort)
  • Método de ordenamiento de selección (SelectionSort)
  • Método de ordenamiento de inserción (InsertionSort)
  • Método de ordenamiento Shell
  • Método de ordenamiento por mezcla (MergeSort)
  • Método de ordenamiento rápido (QuickSort)
  • Heap sort (montón)
  • Counting sort (conteo)
  • Radix sort (raíz)
  • Bucket sort (cubo) 

 El método QuickSort es considerado el más eficiente y rápido de los métodos de ordenamiento interno. 

 Es conveniente utilizar un método de ordenamiento cuando se requieren muchas búsquedas y es importante el factor tiempo. 

Ordenamiento por Burbuja 

#include <stdio.h>

void ordenamientoBurbuja(int arr[], int n) {

    for (int i = 0; i < n - 1; i++) {

        for (int j = 0; j < n - i - 1; j++) {

            if (arr[j] > arr[j + 1]) {

                int temp = arr[j];

                arr[j] = arr[j + 1];

                arr[j + 1] = temp;

            }

        }

    }

}

int main() {

    int arr[] = {64, 34, 25, 12, 22, 11, 90};

    int n = sizeof(arr) / sizeof(arr[0]);

    printf("Arreglo original: ");

    for (int i = 0; i < n; i++) {

        printf("%d ", arr[i]);

    }

    ordenamientoBurbuja(arr, n);

    printf("\nArreglo ordenado: ");

    for (int i = 0; i < n; i++) {

        printf("%d ", arr[i]);

    }

    return 0;

}

 Ordenamiento por Inserción  

#include <stdio.h>


void ordenamientoInsercion(int arr[], int n) {

    for (int i = 1; i < n; i++) {

        int clave = arr[i];

        int j = i - 1;


        // Mueve los elementos del arreglo que son mayores que la clave

        // a una posición adelante de su posición actual

        while (j >= 0 && arr[j] > clave) {

            arr[j + 1] = arr[j];

            j = j - 1;

        }

        arr[j + 1] = clave;

    }

}


int main() {

    int arr[] = {64, 34, 25, 12, 22, 11, 90};

    int n = sizeof(arr) / sizeof(arr[0]);


    printf("Arreglo original: ");

    for (int i = 0; i < n; i++) {

        printf("%d ", arr[i]);

    }


    ordenamientoInsercion(arr, n);


    printf("\nArreglo ordenado: ");

    for (int i = 0; i < n; i++) {

        printf("%d ", arr[i]);

    }


    return 0;

}

Ordenamiento por Selección 

#include <stdio.h>

void ordenamientoSeleccion(int arr[], int n) {

    for (int i = 0; i < n - 1; i++) {

        int min_idx = i;

        for (int j = i + 1; j < n; j++) {

            if (arr[j] < arr[min_idx]) {

                min_idx = j;

            }

        }

        int temp = arr[min_idx];

        arr[min_idx] = arr[i];

        arr[i] = temp;

    }

}

int main() {

    int arr[] = {64, 25, 12, 22, 11};

    int n = sizeof(arr) / sizeof(arr[0]);

    printf("Arreglo original: ");

    for (int i = 0; i < n; i++) {

        printf("%d ", arr[i]);

    }

    ordenamientoSeleccion(arr, n);

    printf("\nArreglo ordenado: ");

    for (int i = 0; i < n; i++) {

        printf("%d ", arr[i]);

    }

    return 0;

}

Ordenamiento de Shell

#include <stdio.h>


void ordenamientoShell(int arr[], int n) {

    for (int gap = n / 2; gap > 0; gap /= 2) {

        // Realiza la ordenación por inserción en sublistas con separación "gap"

        for (int i = gap; i < n; i++) {

            int temp = arr[i];

            int j;


            for (j = i; j >= gap && arr[j - gap] > temp; j -= gap) {

                arr[j] = arr[j - gap];

            }

            arr[j] = temp;

        }

    }

}


int main() {

    int arr[] = {64, 34, 25, 12, 22, 11, 90};

    int n = sizeof(arr) / sizeof(arr[0]);


    printf("Arreglo original: ");

    for (int i = 0; i < n; i++) {

        printf("%d ", arr[i]);

    }


    ordenamientoShell(arr, n);


    printf("\nArreglo ordenado: ");

    for (int i = 0; i < n; i++) {

        printf("%d ", arr[i]);

    }


    return 0;

}

¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar