[C] qsort() 함수

C언어에서 배열을 정렬하는 방법 중 하나는 표준 라이브러리 함수인 qsort()를 사용하는 것입니다. qsort()는 C 언어의 표준 라이브러리 중 하나인 stdlib.h 헤더 파일에 정의되어 있으며, 퀵 정렬 알고리즘을 기반으로 합니다. 이 함수는 배열의 요소 타입에 상관없이 정렬을 수행할 수 있습니다.

qsort() 함수의 원형은 다음과 같습니다.

여기서 ptr는 정렬할 배열을 가리키는 포인터, count는 배열에 있는 요소의 개수, size는 배열의 각 요소의 크기를 바이트 단위로 나타내며, comp는 비교 함수를 가리키는 포인터입니다.

다음은 qsort() 함수를 사용하여 정수 배열을 오름차순으로 정렬하는 예제입니다.

이 코드는 compare()라는 비교 함수를 사용하여 qsort() 함수를 호출합니다. compare() 함수는 두 개의 void 포인터를 인자로 받아, 이를 int 포인터로 형 변환한 후에 참조하여 두 정수를 비교합니다. 이 함수는 첫 번째 정수가 두 번째 정수보다 작을 경우 음수를, 같을 경우 0을, 큰 경우 양수를 반환합니다. 이렇게 하면 qsort() 함수는 이 비교 함수를 사용하여 배열을 오름차순으로 정렬할 수 있습니다.

그런데 qsort()는 정수 배열뿐만 아니라 문자열 배열도 정렬할 수 있습니다. 다음은 qsort() 함수를 사용하여 문자열 배열을 알파벳 순으로 정렬하는 예제입니다.

이 코드는 compare_strings()라는 비교 함수를 사용하여 qsort() 함수를 호출합니다. compare_strings() 함수는 두 개의 void 포인터를 인자로 받아, 이를 문자열 포인터로 형 변환한 후에 참조하여 두 문자열을 비교합니다. 이 함수는 첫 번째 문자열이 두 번째 문자열보다 사전 순으로 앞설 경우 음수를, 같을 경우 0을, 뒤설 경우 양수를 반환합니다. 이렇게 하면 qsort() 함수는 이 비교 함수를 사용하여 배열을 알파벳 순으로 정렬할 수 있습니다.

이 글은 카테고리: C, Programming에 포함되어 있습니다. 고유주소를 북마크하세요.

댓글 남기기