Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

archive

qsort() 함수 본문

C \ C++/C 개념 정리

qsort() 함수

안정민 2023. 3. 21. 13:03

C에서 Quick Sort인 qsort함수 사용하기

기본적으로 stdlib.h에서 Quick Sort 함수인 qsort 함수를 제공해주며 아래와 같습니다.

void qsort(void *base, size_t nel, size_t width, int(*compare)(const void *, const void *);
-base) 배열의 각 원소들의 총 수
-nel) 배열의 각 원소들의 총 수
-width) 배열에서 원소 하나의 크기
-* compare) 비교를 수행할 함수 포인터, C언어 안에서는 함수를 선언하고 구현한 뒤 다음처럼 포인터로 특정 함수를 지정할 수 있음

4번째 인자에 대해서 조금 더 자세히 설명하면 비교함수 내부에는 1, 0 , -1중에 하나를 반환해야합니다. 만약 오름차순으로 정렬을 하고 싶다면 비교함수 내부에서 첫번째 변수가 두번쨰 변수보다 클 때 1 첫번째 변수가 두번째 변수보다 작을 때 -1 같을 때 0을 반환하도록 작성하면 됩니다. 물론 내림차순의 경우 1과 -1을 반환하는 부분의 등호를 바꾸어주면됩니다.

int static compare (const void* first, const void* second)
{
    if (*(int*)first > *(int*)second)
        return 1;
    else if (*(int*)first < *(int*)second)
        return -1;
    else
        return 0;
}

 

'C \ C++ > C 개념 정리' 카테고리의 다른 글

C언어 goto문 개념정리  (0) 2023.03.30
rand(), srand() 함수 개념 정리  (0) 2023.03.21
strtok() 함수 개념  (0) 2023.03.21
[C언어 개념] 포인터 2  (0) 2022.06.29
[C언어 개념] 포인터 연산 규칙 정리  (0) 2022.06.26