Алгоритмы сортировки на C: примеры и объяснения
Функция sort() в языке программирования C используется для сортировки элементов массива в порядке возрастания или убывания.
Синтаксис функции sort() выглядит следующим образом:
C
void sort(int arr[], int n);
где arr[] - массив, который нужно отсортировать, а n - количество элементов в массиве.
Операция сортировки в функции sort() производится с использованием алгоритма быстрой сортировки (QuickSort). Наиболее часто применяемый метод сортировки в языке C.
Ниже приведен код на C, демонстрирующий применение функции sort():
C
#include
#include
int main()
{
int arr[] = {12, 5, 23, 12, 87, 54, 15, 46};
int n = sizeof(arr)/sizeof(arr[0]);
// Оригинальный массив
printf("Оригинальный массив:\n");
for (int i=0; i < n; i++)
printf("%d ", arr[i]);
// Сортировка массива
sort(arr, n);
// Отсортированный массив
printf("\nМассив после сортировки:\n");
for (int i=0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
На выходе данной программы мы получим следующий результат:
Оригинальный массив:
12 5 23 12 87 54 15 46
Массив после сортировки:
5 12 12 15 23 46 54 87
Как видно из кода, функция sort() просто принимает массив и число элементов и автоматически сортирует его. Результатом является отсортированный массив.
Однако обратите внимание, что функция sort() производит сортировку в порядке возрастания. Если вам нужно отсортировать массив в порядке убывания, в функцию sort() необходимо передать дополнительный параметр для указания порядка сортировки, например:
C
qsort(arr, n, sizeof(int), compare_desc);
где compare_desc - функция сравнения для сортировки в порядке убывания. Ниже приведен пример кода функции compare_desc():
C
int compare_desc(const void *a, const void *b)
{
return (*(int*)b - *(int*)a);
}
Функция compare_desc() возвращает 1, если значение элемента a больше значения элемента b, возвращая -1, если значение b больше, а 0, если значения равны.