logo

C-program for å sortere en matrise i stigende rekkefølge

Å sortere en matrise i stigende rekkefølge betyr å ordne elementene fra minste element til største element. I denne artikkelen vil vi lære å sortere en matrise i stigende rekkefølge i programmeringsspråket C.

sortering i C

Det er mange måter matrisen kan sorteres på i stigende rekkefølge. For enkelhets skyld vil vi bruke utvalgssortering i denne artikkelen.



Algoritme

Utvalgssortering er en enkel sorteringsalgoritme som gjentatte ganger finner minimumselementet fra den usorterte delen av matrisen og plasserer den i begynnelsen av den sorterte delen av matrisen til hele matrisen er sortert.

  1. Matrisen kan sorteres i stigende rekkefølge ved gjentatte ganger å finne minimumselementet (vurderer stigende rekkefølge) fra den usorterte delen og sette den i begynnelsen.
  2. Algoritmen opprettholder to undermatriser i en gitt matrise.
    • Undermatrisen som allerede er sortert.
    • Gjenværende undergruppe som er usortert.
  3. I hver iterasjon av utvalgssorteringen blir minimumselementet (med tanke på stigende rekkefølge) fra den usorterte undergruppen plukket og flyttet til den sorterte undergruppen.

Se hele artikkelen om Utvalgssortering for flere detaljer!

Matrisesorteringsprogram i 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; }>

>

>

Produksjon

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

Kompleksitetsanalyse

    Tidskompleksitet: O(N2) Hjelpeområde: O(1)

relaterte artikler