At sortere et array i stigende rækkefølge betyder at arrangere elementerne fra det mindste element til det største element. I denne artikel lærer vi at sortere et array i stigende rækkefølge i programmeringssproget C.

Der er mange måder, hvorpå arrayet kan sorteres i stigende rækkefølge. For nemheds skyld vil vi bruge Selection Sort i denne artikel.
Algoritme
Udvælgelsessortering er en simpel sorteringsalgoritme, der gentagne gange finder minimumselementet fra den usorterede del af arrayet og placerer det i begyndelsen af den sorterede del af arrayet, indtil hele arrayet er sorteret.
- Arrayet kan sorteres i stigende rækkefølge ved gentagne gange at finde minimumselementet (i betragtning af stigende rækkefølge) fra den usorterede del og sætte det i begyndelsen.
- Algoritmen opretholder to subarrays i et givet array.
- Underarrayet, som allerede er sorteret.
- Resterende underarray, som er usorteret.
- I hver iteration af udvælgelsessortering plukkes minimumselementet (i betragtning af stigende rækkefølge) fra den usorterede subarray og flyttes til den sorterede subarray.
Se hele artiklen vedr Udvalgssortering for flere detaljer!
Array sorteringsprogram 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; }> |
>
>Produktion
Original array: 0 23 14 12 9 Sorted array in Ascending order: 0 9 12 14 23>
Kompleksitetsanalyse
- Tidskompleksitet: O(N2) Hjælpeplads: O(1)