Att sortera en array i stigande ordning innebär att arrangera elementen från minsta element till största element. I den här artikeln kommer vi att lära oss att sortera en array i stigande ordning i programmeringsspråket C.
Det finns många sätt på vilka arrayen kan sorteras i stigande ordning, för enkelhetens skull kommer vi att använda Selection Sort i den här artikeln.
Algoritm
Urvalssortering är en enkel sorteringsalgoritm som upprepade gånger hittar minimielementet från den osorterade delen av arrayen och placerar den i början av den sorterade delen av arrayen tills hela arrayen är sorterad.
- Arrayen kan sorteras i stigande ordning genom att upprepade gånger hitta minimielementet (med tanke på stigande ordning) från den osorterade delen och sätta den i början.
- Algoritmen upprätthåller två subarrayer i en given array.
- Undermatrisen som redan är sorterad.
- Återstående subarray som är osorterad.
- I varje iteration av urvalssorteringen plockas minimielementet (med tanke på stigande ordning) från den osorterade subarrayen och flyttas till den sorterade subarrayen.
Se hela artikeln om Urval Sortera för mer detaljer!
Matrissorteringsprogram 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; }> |
jämförbar lista
>
>Produktion
Original array: 0 23 14 12 9 Sorted array in Ascending order: 0 9 12 14 23>
Komplexitetsanalys
- Tidskomplexitet: O(N2) Hjälputrymme: O(1)