QSort - алгоритм быстрой сортировки массивов
Функция qsort является одной из стандартных библиотечных функций языка программирования C для сортировки массивов. Она использует алгоритм быстрой сортировки (quicksort), который является одним из самых быстрых и эффективных алгоритмов сортировки массивов.
Синтаксис функции qsort выглядит следующим образом:
c
void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
Параметры функции:
- `base` - указатель на начало массива, который нужно отсортировать.
- `nmemb` - количество элементов в массиве.
- `size` - размер каждого элемента в массиве в байтах.
- `compar` - указатель на функцию сравнения двух элементов массива.
Пример использования функции qsort:
c
#include
#include
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
int arr[] = {5, 3, 8, 2, 1, 9, 4};
int n = sizeof(arr)/sizeof(arr[0]);
qsort(arr, n, sizeof(int), compare);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
В данном примере мы создаем массив `arr` из целых чисел, содержащий 7 элементов. Затем мы передаем этот массив в функцию qsort для сортировки.
Функция `compare` является функцией сравнения двух элементов массива. Она получает два указателя на элементы массива типа `const void *`, а затем преобразует их в указатели на тип `int` и выполняет сравнение.
Мы вызываем функцию qsort, передавая ей указатель на начало массива, количество элементов в массиве, размер каждого элемента и указатель на функцию сравнения. Функция qsort сортирует массив в порядке возрастания, используя быструю сортировку.
Наконец, мы выводим отсортированный массив в консоли с помощью цикла for и функции printf.
Таким образом, функция qsort является мощным инструментом для сортировки массивов в языке программирования C. Она использует эффективный алгоритм быстрой сортировки и позволяет сортировать массивы любых типов данных.