Ordenar una matriu en ordre ascendent significa ordenar els elements des de l'element més petit fins a l'element més gran. En aquest article, aprendrem a ordenar una matriu en ordre ascendent en el llenguatge de programació C.
Hi ha moltes maneres en què la matriu es pot ordenar en ordre ascendent, per simplificar, utilitzarem l'Ordenació de selecció en aquest article.
Algoritme
L'ordenació per selecció és un algorisme d'ordenació senzill que troba repetidament l'element mínim de la part no ordenada de la matriu i el col·loca al principi de la part ordenada de la matriu fins que s'ordena la matriu completa.
- La matriu es pot ordenar en ordre ascendent trobant repetidament l'element mínim (tenint en compte l'ordre ascendent) de la part no ordenada i posant-lo al principi.
- L'algorisme manté dos subarrays en una matriu donada.
- El subarray que ja està ordenat.
- Subbarray restant que no està ordenat.
- En cada iteració de l'ordenació de selecció, l'element mínim (considerant l'ordre ascendent) de la subbarra no ordenada s'escull i es mou a la subbarra ordenada.
Consulteu l'article complet sobre Ordenació de la selecció per a més detalls!
Programa d'ordenació de matrius 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; }> |
>
>Sortida
Original array: 0 23 14 12 9 Sorted array in Ascending order: 0 9 12 14 23>
Anàlisi de complexitat
- Complexitat temporal: O(N2) Espai auxiliar: O(1)
Articles relacionats
- Ordenació de la selecció
- Classificació de bombolles
- Fusionar Ordenar
- Radix Sort
- Ordenació d'inserció