Triedenie poľa vo vzostupnom poradí znamená usporiadanie prvkov od najmenšieho prvku po najväčší prvok. V tomto článku sa naučíme triediť pole vo vzostupnom poradí v programovacom jazyku C.
Existuje mnoho spôsobov, ako môže byť pole zoradené vzostupne. Pre jednoduchosť budeme v tomto článku používať triedenie výberu.
Algoritmus
Selekčné triedenie je jednoduchý triediaci algoritmus, ktorý opakovane nájde minimálny prvok z nezoradenej časti poľa a umiestni ho na začiatok zoradenej časti poľa, kým nie je zoradené celé pole.
- Pole je možné triediť vo vzostupnom poradí opakovaným nájdením minimálneho prvku (vzhľadom na vzostupné poradie) z nezoradenej časti a jeho umiestnením na začiatok.
- Algoritmus udržiava dve podpole v danom poli.
- Podpole, ktoré je už zoradené.
- Zostávajúce podpole, ktoré nie je zoradené.
- V každej iterácii triedenia výberu sa vyberie minimálny prvok (vzhľadom na vzostupné poradie) z nezoradeného podpola a presunie sa do zoradeného podpola.
Pozrite si celý článok na Výber Zoradiť pre viac detailov!
súkromná vs verejná java
Program na triedenie polí v jazyku C
C
lambda funkcia java
// 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; }> |
>
>Výkon
Original array: 0 23 14 12 9 Sorted array in Ascending order: 0 9 12 14 23>
Analýza zložitosti
- Časová zložitosť: O(N2) Pomocný priestor: O(1)