Razvrščanje matrike v naraščajočem vrstnem redu pomeni razvrščanje elementov od najmanjšega do največjega. V tem članku se bomo naučili razvrščati matriko v naraščajočem vrstnem redu v programskem jeziku C.
Obstaja veliko načinov, s katerimi je mogoče matriko razvrstiti v naraščajočem vrstnem redu. Zaradi enostavnosti bomo v tem članku uporabili razvrščanje z izbiro.
Algoritem
Izbirno razvrščanje je preprost algoritem za razvrščanje, ki vedno znova najde najmanjši element iz nerazvrščenega dela matrike in ga postavi na začetek razvrščenega dela matrike, dokler ni razvrščena celotna matrika.
- Matriko lahko razvrstite v naraščajočem vrstnem redu tako, da večkrat poiščete najmanjši element (glede na naraščajoči vrstni red) iz nerazvrščenega dela in ga postavite na začetek.
- Algoritem vzdržuje dve podnitri v dani matriki.
- Podmatrika, ki je že razvrščena.
- Preostala podmatrika, ki ni razvrščena.
- V vsaki ponovitvi izbirnega razvrščanja se najmanjši element (glede na naraščajoči vrstni red) iz nerazvrščene podmatrike izbere in premakne v razvrščeno podmatrico.
Glejte celoten članek o Izbor Razvrsti za več podrobnosti!
Program za razvrščanje nizov v 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; }> |
>
>Izhod
Original array: 0 23 14 12 9 Sorted array in Ascending order: 0 9 12 14 23>
Analiza kompleksnosti
- Časovna zahtevnost: O(N2) Pomožni prostor: O(1)