# qsort 함수
[함수의 원형]
void qsort(
void * _Base, // 배열의 시작 주소
size_t _NumOfElements, // 배열 요소의 갯수
size_t _SizeOfElements, // 배열 요소 하나의 크기(바이트 단위)
int (* _PtFuncCompare)(constvoid *, constvoid *)
// 비교함수. 포인터를 통하여 두개의 요소를 비교하여 비교 결과를 정수로 반환한다.
// 사용자가 만들어서 제공하여야 하며 원형은 변경하면 안된다.
);
[사용 예제]
#include <stdio.h>
#include <stdlib.h>
int compare1(constvoid *arg1,constvoid *arg2)
{
if( *(int*)arg1 > *(int*)arg2 ) return1;
elseif( *(int*)arg1 == *(int*)arg2 ) return0;
elsereturn -1;
}
int compare2(constvoid *arg1,constvoid *arg2)
{
if( *(double*)arg1 > *(double*)arg2 ) return1;
elseif( *(double*)arg1 == *(double*)arg2 ) return0;
elsereturn -1;
}
int main()
{
int list1[10]={9,1,4,3,2,5,7,6,8,10};
double list2[5]={2.1,1.1,8.9,9.3,5.1};
int i;
qsort((void*)list1,(size_t)10,sizeof(int),compare1);
qsort((void*)list2,(size_t)5,sizeof(double),compare2);
for(i=0;i<10;i++)
printf("%d ",list1[i]);
puts("");
for(i=0;i<5;i++)
printf("%.1f ",list2[i]);
return0;
}
'프로그래밍 > C/C++' 카테고리의 다른 글
C++ :: 클래스의 기본, 클래스와 객체, 객체지향 프로그래밍 (0) | 2010.08.12 |
---|---|
C++ :: bool형, 참조자(Reference), new & delete, C표준함수 호출 (0) | 2010.08.12 |
C++ :: 입출력, 함수오버로딩, 디폴트매개변수, 인라인함수, 이름공간 (0) | 2010.08.12 |
C :: 비트 연산자 (1) | 2010.05.26 |
C :: Borland C++ conio.h에 포함된 함수 구현 (0) | 2010.05.22 |
댓글 로드 중…