qsort — встроенная сортировка в C

Структуры и функции   25 марта 2012  Автор статьи:  

Функция qsort сортирует указанный массив с помощью библиотечной быстрой сортировки.
Библиотека
stdlib.h

Способы вызова функции

void qsort ( void * base, size_t num, size_t size, int ( * comp ) ( const void *, const void * ) );

Где

  • base — ссылка на первый элемент массива, который следует отсортировать
  • num — количество элементов в массиве
  • size — размер в байтах одного элемента массива
  • comp — компаратор, согласно которому будет произведена сортировка элементов в массиве

Сложность

Функция имеет логарифмическую сложность от длины промежутка поиска в среднем случае и квадрат в наихудшем.

Примеры

#include
#define NMAX 4000000
using namespace std;
int arr[NMAX+1];
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int main()
{
qsort (arr, NMAX, sizeof(int), compare);
return 0;
}


Замечания

Не советую использовать данную функцию сейчас, так как она работает медленнее, чем IntroSort в C++. Также qsort умеет работать только с массивами, а еще очень хотелось бы сортировать коллекции. Таким образом ее сейчас используют только в обучающих целях.

Научиться программировать

  • на Delphi

  • на Java

  • на C++