Seřadit pole ve vzestupném pořadí znamená seřadit prvky od nejmenšího prvku po největší prvek. V tomto článku se naučíme třídit pole ve vzestupném pořadí v programovacím jazyce C.
Existuje mnoho způsobů, jak lze pole seřadit vzestupně. Pro jednoduchost budeme v tomto článku používat třídění výběru.
Algoritmus
Výběrové řazení je jednoduchý třídicí algoritmus, který opakovaně najde minimální prvek z neseřazené části pole a umístí jej na začátek seřazené části pole, dokud není setříděno celé pole.
- Pole lze seřadit vzestupně opakovaným nalezením minimálního prvku (s ohledem na vzestupné pořadí) z neseřazené části a jeho umístěním na začátek.
- Algoritmus udržuje dvě podpole v daném poli.
- Podpole, která je již seřazena.
- Zbývající podpole, která není seřazena.
- V každé iteraci řazení výběru se vybere minimální prvek (s ohledem na vzestupné pořadí) z neseřazeného podpole a přesune se do seřazeného podpole.
Podívejte se na celý článek na Výběr Seřadit Více podrobností!
Program pro řazení polí 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; }> |
rozdíl v pythonu
>
>Výstup
Original array: 0 23 14 12 9 Sorted array in Ascending order: 0 9 12 14 23>
Analýza složitosti
- Časová složitost: O(N2) Pomocný prostor: O(1)