지식보부상님의 공부 일지

C언어: qsort 함수 본문

카테고리 없음

C언어: qsort 함수

지식보부상님 2023. 4. 21. 13:06

qsort 함수는 Quick sort 함수로 stdlib.h 에서 제공해주는 함수입니다!

qsort 함수를 사용하기 위해서는 비교함수를 꼭 작성해주어야 합니다.

int cmp(int *a, int *b) {
	return *a<*b ? -1 : *a>*b ? 1 : 0;
}

위와 같이 말이죠!

qsort(정렬할배열, 원소의개수, 원소하나의크기, 비교함수)

위와 같이 사용하면 되겠습니다!

 

다음과 같은 예제를 생각할 수 있습니다!

#include <stdio.h>
#include <stdlib.h>

int cmp(int *a, int *b) {
	return *a<*b ? -1 : *a>*b ? 1 : 0;
}

int main() {
	int str[7] = { -1,9,8,3,12,-15,0 };
	//qsort(정렬할배열, 원소의개수, 원소의크기, 비교함수)
	qsort(str, 7, sizeof(int), cmp);

	for (int i = 0; i < 7; i++) {
		printf("%d ", str[i]);
	}

}

 

출력화면은 다음과 같습니다.