logo

Program w C sortujący tablicę w porządku rosnącym

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.

sortowanie w 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.



  1. 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.
  2. Algorytm utrzymuje dwie podtablice w danej tablicy.
    • Podtablica, która jest już posortowana.
    • Pozostała podtablica, która jest nieposortowana.
  3. 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