logo

Programa C para ordenar una matriz en orden ascendente

Ordenar una matriz en orden ascendente significa ordenar los elementos desde el elemento más pequeño hasta el más grande. En este artículo, aprenderemos a ordenar una matriz en orden ascendente en el lenguaje de programación C.

ordenar en C

Hay muchas formas de ordenar la matriz en orden ascendente. Para simplificar, utilizaremos la ordenación por selección en este artículo.



Algoritmo

La clasificación por selección es un algoritmo de clasificación simple que encuentra repetidamente el elemento mínimo de la parte no ordenada de la matriz y lo coloca al principio de la parte ordenada de la matriz hasta que se ordena la matriz completa.

  1. La matriz se puede ordenar en orden ascendente buscando repetidamente el elemento mínimo (considerando el orden ascendente) de la parte no ordenada y colocándolo al principio.
  2. El algoritmo mantiene dos subarreglos en una matriz determinada.
    • El subarreglo que ya está ordenado.
    • Subarreglo restante que no está ordenado.
  3. En cada iteración de la clasificación por selección, el elemento mínimo (considerando el orden ascendente) del subarreglo sin clasificar se selecciona y se mueve al subarreglo ordenado.

Consulte el artículo completo sobre Orden de selección ¡para más detalles!

Programa de clasificación de matrices en C

C








// C program to sort the array in an> // ascending order using selection sort> #include> > void> swap(>int>* xp,>int>* yp)> {> >int> temp = *xp;> >*xp = *yp;> >*yp = temp;> }> > // Function to perform Selection Sort> void> selectionSort(>int> arr[],>int> n)> {> >int> i, j, min_idx;> > >// One by one move boundary of> >// unsorted subarray> >for> (i = 0; i // Find the minimum element in // unsorted array min_idx = i; for (j = i + 1; j if (arr[j] min_idx = j; // Swap the found minimum element // with the first element swap(&arr[min_idx], &arr[i]); } } // Function to print an array void printArray(int arr[], int size) { int i; for (i = 0; i printf('%d ', arr[i]); printf(' '); } // Driver code int main() { int arr[] = { 0, 23, 14, 12, 9 }; int n = sizeof(arr) / sizeof(arr[0]); printf('Original array: '); printArray(arr, n); selectionSort(arr, n); printf(' Sorted array in Ascending order: '); printArray(arr, n); return 0; }>

>

>

Producción

Original array: 0 23 14 12 9 Sorted array in Ascending order: 0 9 12 14 23>

Análisis de complejidad

    Complejidad del tiempo: O(N2) Espacio auxiliar: O(1)

Artículos relacionados