Sortowanie tablicy w porządku rosnącym oznacza ułożenie elementów od najmniejszego do największego elementu. W tym artykule nauczymy się sortować tablicę w kolejności rosnącej w języku programowania C.
Istnieje wiele sposobów sortowania tablicy w kolejności rosnącej. Dla uproszczenia w tym artykule użyjemy sortowania przez wybór.
Algorytm
Sortowanie przez wybór to prosty algorytm sortowania, który wielokrotnie wyszukuje minimalny element z nieposortowanej części tablicy i umieszcza go na początku posortowanej części tablicy, aż do posortowania całej tablicy.
- Tablicę można posortować rosnąco, wielokrotnie znajdując element minimalny (biorąc pod uwagę kolejność rosnącą) z nieposortowanej części i umieszczając go na początku.
- Algorytm utrzymuje dwie podtablice w danej tablicy.
- Podtablica, która jest już posortowana.
- Pozostała podtablica, która jest nieposortowana.
- W każdej iteracji sortowania przez wybór wybierany jest minimalny element (biorąc pod uwagę porządek rosnący) z nieposortowanej podtablicy i przenoszony do posortowanej podtablicy.
Zapoznaj się z pełnym artykułem na temat Sortowanie przez wybór po więcej szczegółów!
Program do sortowania tablic w C
C
darmowy ipconfig
// 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; }> |
ciąg wew
>
>Wyjście
Original array: 0 23 14 12 9 Sorted array in Ascending order: 0 9 12 14 23>
Analiza złożoności
- Złożoność czasowa: O(N2) Przestrzeń pomocnicza: O(1)
Powiązane artykuły
- Sortowanie przez wybór
- Sortowanie bąbelkowe
- Sortowanie przez scalanie
- Sortuj Radix
- Sortowanie przez wstawianie