qsort() 함수는 SVr4, 4.3BSD, C89, C99를 준수합니다. compar – 이것은 두 가지 요소를 비교하는 기능입니다. 한 가지 사용 예는 bsearch(3) 아래의 예제를 참조하십시오. 또 다른 예는 명령줄 인수에 주어진 문자열을 정렬하는 다음 프로그램입니다: 표준 C 라이브러리는 배열을 정렬하는 데 사용할 수 있는 qsort()를 제공합니다. 이름에서 알 수 있듯이 함수는 QuickSort 알고리즘을 사용하여 지정된 배열을 정렬합니다. 다음은 qsort() qsort_s까지 qsort의 사용자가 전역 변수를 사용하여 비교 함수에 추가 컨텍스트를 전달하는 경우가 많습니다. 함수는 전달된 개체를 수정할 수 없으며 배열의 위치에 관계없이 동일한 개체에 대해 호출될 때 일관된 결과를 반환해야 합니다. 기본 매개 변수는 배열의 첫 번째 요소에 대한 포인터입니다. num 매개 변수는 배열의 요소 수입니다.

크기 매개 변수는 배열의 각 요소의 바이트로 크기를 제공합니다. 비교 함수는 두 요소를 비교하는 함수입니다. 대부분의 경우 함수는 다음 프로토타입을 따릅니다: qsort 함수는 1973년 버전 3 유닉스에 있었지만 그 다음에는 어셈블러 서브루틴이었습니다. [3] 표준 C 버전의 인터페이스가 대략적인 C 버전은 버전 6 유닉스에 있습니다. [4] 그것은 버클리에서 1983 년에 다시 작성되었습니다. [1] 이 함수는 ANSI C(1989)에서 표준화되었다. 다음은 qsort() 및 비교 함수의 도움으로 쉽게 해결할 수있는 흥미로운 문제입니다. 정수 배열을 감안할 때 홀수가 먼저 나타나고 짝수가 나중에 나타나는 방식으로 정렬합니다. 홀수는 내림차순으로 정렬되어야 하며 짝수는 오름차순으로 정렬되어야 합니다.

배열의 내용은 비교 대상을 가리키는 비교 함수에 따라 오름차순으로 정렬되며, 비교 대상을 가리키는 두 개의 인수로 호출됩니다. qsort는 사용자가 제공한 비교 함수에 따라 임의의 개체 배열에 대한 다형성 정렬 알고리즘을 구현하는 C 표준 라이브러리 함수입니다. C 표준은 quicksort를 구현할 필요가 없지만 원래 유닉스 C 라이브러리에서 구현하는 데 사용되었던 “빠른 정렬” 알고리즘(R. S. Scowen으로 인한 퀵정렬 변형)의 이름을 따서 명명되었습니다. [1] qsort() 함수는 크기의 nmemb 요소로 배열을 정렬합니다. 기본 인수는 배열의 시작을 가리킵니다. 이름에도 불구하고 C 또는 POSIX 표준은 quicksort를 사용하여 이 기능을 구현하거나 복잡성 또는 안정성을 보장할 필요가 없습니다. 첫 번째 인수가 두 번째 인수보다 크고 인수가 같으면 0이면 양수 정수 값입니다. 비교 함수의 시그니처는 다음과 동일해야 합니다. 모든 요소에는 크기 바이트 길이가 있습니다. qsort 함수는 비교 함수를 사용하여 요소의 순서를 결정합니다.

qsort()에 비교 인수로 사용하기에 적합한 라이브러리 루틴에는 alphasort(3) 및 versionsort(3)가 포함됩니다. C 문자열을 비교하기 위해 비교 함수는 아래 예제와 같이 strcmp(3)를 호출할 수 있습니다. C 라이브러리 함수 void qsort(보이드 *기본, size_t nitems, size_t 크기, int(*비교)(const void *, const void*))는 배열을 정렬합니다. 오름차순으로 마크를 기준으로 학생을 정렬해야 한다고 가정해 봅시다.