Sortarea unui tablou în ordine crescătoare înseamnă aranjarea elementelor de la cel mai mic element la cel mai mare element. În acest articol, vom învăța să sortăm o matrice în ordine crescătoare în limbajul de programare C.
alfabet la numere
Există multe moduri prin care matricea poate fi sortată în ordine crescătoare. Pentru simplitate, vom folosi Selection Sort în acest articol.
Algoritm
Selection sort este un algoritm simplu de sortare care găsește în mod repetat elementul minim din partea nesortată a matricei și îl plasează la începutul părții sortate a matricei până când matricea completă este sortată.
- Matricea poate fi sortată în ordine crescătoare găsind în mod repetat elementul minim (luând în considerare ordinea crescătoare) din partea nesortată și punându-l la început.
- Algoritmul menține două subbary într-o matrice dată.
- Subbarra care este deja sortată.
- Subbarra rămasă care nu este sortată.
- În fiecare iterație a sortării de selecție, elementul minim (luând în considerare ordinea crescătoare) din subgrupul nesortat este ales și mutat în subbary sortat.
Consultați articolul complet pe Sortare selecție pentru mai multe detalii!
Programul de sortare a matricelor în 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; }> |
>
caseta de alertă javascript
>Ieșire
Original array: 0 23 14 12 9 Sorted array in Ascending order: 0 9 12 14 23>
Analiza complexității
- Complexitatea timpului: O(N2) Spațiu auxiliar: O(1)