Language/C
[따배씨] 14.25 qsort() 함수 포인터 연습문제
migrationArc
2021. 7. 14. 23:51
따배씨 - 따라하며 배우는 C언어
14강 구조체_2
14.25 qsort() 함수 포인터 연습문제
#include <stdio.h>
#include <stdlib.h>
int compare(const void* first, const void* second){
// void type pointer 는 어떤 타입이든 가리킬 수 있다
if (*(int*)first > *(int*)second)
return 1;
else if (*(int*)first < *(int*)second)
return -1;
else
return 0;
}
int main(){
int arr[] = {8, 2, 5, 3, 6, 11};
int n = sizeof(arr) / sizeof(arr[0]);
qsort(arr, n, sizeof(int), compare);
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
- quick sort 예제
#include <stdio.h>
#include <stdlib.h>
struct kid
{
char name[100];
int height;
};
int compare(const void* first, const void* second)
{
if (((struct kid*)first)->height > ((struct kid*)second)->height)
return 1;
else if (((struct kid*)first)->height < ((struct kid*)second)->height)
return -1;
else
return 0;
}
int main()
{
struct kid my_friends[] = {
"Jack Jack", 40, "Geenie", 300, "Aladin", 170, "Piona", 150
};
const int n = sizeof(my_friends) / sizeof(struct kid);
qsort(my_friends, n, sizeof(struct kid), compare);
for (int i = 0; i < n; i++)
{
printf("%s \t%d\n", my_friends[i].name, my_friends[i].height);
}
return 0;
}
int compare(const void* first, const void* second)
{
if (((struct kid*)first)->height > ((struct kid*)second)->height)
return 1;
else if (((struct kid*)first)->height < ((struct kid*)second)->height)
return -1;
else
return 0;
}
- 함수의 입력을 pointer 로 받아서 structure 의 내부 조건으로 정렬
이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.
http://blog.naver.com/atelierjpro
실리콘 밸리의 프로그래머 : 네이버 블로그
안녕하세요! 홍정모 블로그에 오신 것을 환영합니다. 주로 프로그래밍 관련 메모 용도로 사용합니다. 강의 수강하시는 분들은 홍정모 연구소 카페로 오세요.
blog.naver.com
http://www.inflearn.com/course/following-c
홍정모의 따라하며 배우는 C언어 - 인프런 | 강의
'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., 따라하며 배우는 C언어 '따배씨++'의 성원
www.inflearn.com