logo

Програма на C для сортування масиву в порядку зростання

Сортування масиву в порядку зростання означає розташування елементів від найменшого до найбільшого. У цій статті ми навчимося сортувати масив у порядку зростання мовою програмування C.

сортування в C

Існує багато способів сортування масиву за зростанням. Для спрощення в цій статті ми використовуватимемо сортування за вибором.



Алгоритм

Сортування вибором — це простий алгоритм сортування, який неодноразово знаходить мінімальний елемент із невідсортованої частини масиву та розміщує його на початку відсортованої частини масиву, доки не буде відсортовано весь масив.

  1. Масив можна відсортувати за зростанням, багаторазово знаходячи мінімальний елемент (з огляду на зростання) з невідсортованої частини та ставлячи його на початок.
  2. Алгоритм підтримує два підмасиви в заданому масиві.
    • Підмасив, який уже відсортовано.
    • Залишок підмасиву, який не відсортований.
  3. У кожній ітерації сортування вибору мінімальний елемент (у порядку зростання) з невідсортованого підмасиву вибирається та переміщується до відсортованого підмасиву.

Див. повну статтю про Сортування вибору для більш детальної інформації!

Програма сортування масивів на 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; }>

>

>

Вихід

Original array: 0 23 14 12 9 Sorted array in Ascending order: 0 9 12 14 23>

Аналіз складності

    Часова складність: O(N2) Допоміжний простір: O(1)

Схожі статті