Сортування масиву в порядку зростання означає розташування елементів від найменшого до найбільшого. У цій статті ми навчимося сортувати масив у порядку зростання мовою програмування C.
Існує багато способів сортування масиву за зростанням. Для спрощення в цій статті ми використовуватимемо сортування за вибором.
Алгоритм
Сортування вибором — це простий алгоритм сортування, який неодноразово знаходить мінімальний елемент із невідсортованої частини масиву та розміщує його на початку відсортованої частини масиву, доки не буде відсортовано весь масив.
- Масив можна відсортувати за зростанням, багаторазово знаходячи мінімальний елемент (з огляду на зростання) з невідсортованої частини та ставлячи його на початок.
- Алгоритм підтримує два підмасиви в заданому масиві.
- Підмасив, який уже відсортовано.
- Залишок підмасиву, який не відсортований.
- У кожній ітерації сортування вибору мінімальний елемент (у порядку зростання) з невідсортованого підмасиву вибирається та переміщується до відсортованого підмасиву.
Див. повну статтю про Сортування вибору для більш детальної інформації!
Програма сортування масивів на 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)