Быстрая сортировка qsort в языке C
QSort (quick sort) - это алгоритм сортировки для массивов, который использует стратегию "разделения и властвования". Он был разработан Чарльзом Хоаром в 1960-х годах. Функция qsort является системной функцией в языках программирования C и C++, которая позволяет сортировать массивы в порядке возрастания или убывания.
Функция qsort имеет следующие параметры:
- указатель на начало массива данных;
- количество элементов в массиве;
- размер каждого элемента;
- указатель на функцию сравнения.
Пример использования функции qsort для сортировки массива целых чисел:
#include
#include
int compare (const void *a, const void *b)
{
return (*(int*)a - *(int*)b);
}
int main()
{
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
int n = sizeof(arr)/sizeof(arr[0]);
qsort(arr, n, sizeof(int), compare);
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
Здесь функция compare используется для сравнения двух элементов массива. Если первый элемент меньше второго, то функция должна вернуть отрицательное число. Если два элемента равны, то функция должна вернуть ноль. В противном случае функция должна вернуть положительное число.
После вызова функции qsort массив будет отсортирован в порядке возрастания: 1 1 2 3 3 4 5 5 6 9.