qsort
빠른 정렬을 수행합니다.보다 안전한 버전의이 함수를 사용할 수 있습니다. see qsort_s.
void qsort(
void *base,
size_t num,
size_t width,
int (__cdecl *compare )(const void *, const void *)
);
매개 변수
base
시작 대상 배열입니다.num
요소 배열의 크기입니다.width
요소 크기 (바이트)에서입니다.compare
두 배열의 요소를 비교 하 고 서로의 관계를 나타내는 값을 반환 하는 사용자 제공 루틴에 대 한 포인터입니다.
설명
qsort 기능 배열을 정렬 하려면 퀵 정렬 알고리즘을 구현 num 의 각 요소를 width 바이트입니다.인수가 base 의 배열 정렬 되는 것에 대 한 포인터입니다.qsort이 배열의 요소를 정렬 된를 사용 하 여 덮어씁니다.
qsort호출을 compare 루틴 하나 이상의 정렬 하는 동안 제한 시간이 및 각 호출에서 두 배열 요소에 포인터를 전달 합니다.
compare( (void *) & elem1, (void *) & elem2 );
루틴의 요소를 비교 하 고 다음 값 중 하나를 반환 합니다.
함수 반환 값을 비교 합니다. |
설명 |
---|---|
< 0 |
elem1보다 작은elem2 |
0 |
elem1해당 하는elem2 |
> 0 |
elem1보다 큼elem2 |
비교 함수에 의해 정의 된 배열은 오름차순으로 정렬.배열을 내림차순으로 정렬 하려면 ">" 및 "보다 작음" 비교 함수를 보면을 반대로 합니다.
이 함수의 매개 변수의 유효성을 검사 합니다.경우 compare 또는 num 입니다 NULL, 또는 base 입니다 NULL 및 *num 0이 아닙니다 경우 width 가 0 보다 잘못 된 매개 변수 처리기를의 설명에 따라 호출 됩니다 매개 변수 유효성 검사.함수 실행 계속할 수 있는지 여부를 반환 하 고 errno 으로 설정 EINVAL.
요구 사항
루틴 |
필수 헤더 |
---|---|
qsort |
<stdlib.h> 및 <search.h> |
추가 호환성 정보를 참조 하십시오. 호환성.
예제
// crt_qsort.c
// arguments: every good boy deserves favor
/* This program reads the command-line
* parameters and uses qsort to sort them. It
* then displays the sorted arguments.
*/
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int compare( const void *arg1, const void *arg2 );
int main( int argc, char **argv )
{
int i;
/* Eliminate argv[0] from sort: */
argv++;
argc--;
/* Sort remaining args using Quicksort algorithm: */
qsort( (void *)argv, (size_t)argc, sizeof( char * ), compare );
/* Output sorted list: */
for( i = 0; i < argc; ++i )
printf( " %s", argv[i] );
printf( "\n" );
}
int compare( const void *arg1, const void *arg2 )
{
/* Compare all of both strings: */
return _stricmp( * ( char** ) arg1, * ( char** ) arg2 );
}
해당 .NET Framework 항목
System::Collections::ArrayList::Sort