본문 바로가기
728x90
반응형

Computer Science/C 언어25

C 표준 라이브러리 qsort() (feat. 퀵 정렬) C 표준 라이브러리의 qsort 함수는 일반화된 정렬 함수로, 다양한 데이터 타입과 정렬 기준에 따라 데이터를 정렬할 수 있습니다. qsort는 이름에서 알 수 있듯이 내부적으로 퀵 정렬(Quick Sort) 알고리즘을 기반으로 동작합니다.qsort 함수 정의qsort 함수는 다음과 같이 선언되어 있습니다.void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *));매개변수 설명base: 정렬할 배열의 시작 주소입니다.nitems: 배열의 요소 개수입니다.size: 배열의 각 요소 크기(바이트 단위)입니다.compar: 두 요소를 비교하는 사용자 정의 함수입니다.비교 함수 정의qsort 함수에서 중.. 2025. 1. 13.
[C언어 22] 정렬 알고리즘 총 정리: C언어 구현 정렬 알고리즘은 데이터의 순서를 특정 기준(오름차순/내림차순)에 따라 배열하는 과정입니다. 백준 2751번 문제(정수 오름차순 정렬)을 활용하여 C 언어로 구현할 수 있는 다양한 정렬 알고리즘을 소개합니다. 각각의 알고리즘은 시간 복잡도와 효율성이 다르므로 상황에 따라 적합한 정렬 방법을 선택해야 합니다. 각 정렬 알고리즘에 대한 원리와 특징은 이전 포스트를 참고하면 되겠습니다. 2024.12.14 - [Computer Science/자료구조 & 알고리즘] - [자료구조 & 알고리즘] 정렬 알고리즘 총 정리 [자료구조 & 알고리즘] 정렬 알고리즘 총 정리정렬 알고리즘 종류 및 비교 1. 비교 기반 정렬버블 정렬 (Bubble Sort)선택 정렬 (Selection Sort)삽입 정렬 (Insertion .. 2025. 1. 12.
[C언어 21] C언어로 객체지향 프로그래밍 흉내내기 C언어로 객체지향 프로그래밍 흉내내기C 언어는 객체지향 언어(OOP)를 지원하지 않는 절차적 언어입니다. 그러나 구조체와 함수 포인터를 조합하거나 특정 설계 패턴을 사용하여 객체지향의 핵심 개념을 구현할 수 있습니다. 이번 글에서는 C 언어로 클래스, 상속, 다형성과 같은 객체지향 특징을 흉내 내는 방법을 설명합니다. 1. C에서 클래스 흉내내기: 구조체와 함수의 조합클래스의 중요한 특징은 **데이터(멤버 변수)**와 **행동(멤버 함수)**를 묶어서 하나의 단위로 관리하는 것입니다. C에서는 다음과 같은 방식으로 이를 흉내낼 수 있습니다.1.1. 구조체를 사용하여 데이터 관리구조체는 클래스의 멤버 변수와 유사한 데이터 구조를 정의합니다.예제:#include // 구조체 정의typedef struct {.. 2024. 12. 29.
[C언어 20] Declarations 선언문 Declarations  선언문C 언어의 선언문은 변수, 함수, 포인터, 배열 등의 사용을 정의하는 중요한 요소입니다. 올바른 선언문 작성은 프로그램의 가독성과 안정성을 높입니다. 이 챕터에서는 선언문의 구조와 다양한 유형의 선언을 심도 있게 다룹니다. 기존에 자주 사용하던 선언 형식부터 다소 생소한(?) 선언문까지 짚고 가볼까합니다. 다음 포스트에는 C언어로 객체지향을 흉내내는 방법에 대해 게시하겠습니다.1. Basics of Declarations / 선언문의 기본구조: 선언문은 데이터 타입과 변수 이름으로 구성됩니다.형식: 예: int number;예제: 기본 변수 선언#include int main() { int number = 10; // 정수형 변수 선언 float pi = 3.1.. 2024. 12. 28.
[C언어 19] Advanced Uses of Pointers 포인터의 고급 활용 Advanced Uses of Pointers / 포인터의 고급 활용1. Dynamic Memory Allocation / 동적 메모리 할당개념: 프로그램 실행 중 메모리를 동적으로 할당하고 해제.주요 함수:malloc: 메모리를 할당.calloc: 초기화된 메모리를 할당.realloc: 기존 메모리 크기를 조정.free: 할당된 메모리를 해제.(1) malloc설명: 지정한 크기의 메모리를 할당하며, 초기화되지 않은 상태로 반환.형식: void *malloc(size_t size);예제:#include #include int main() { int *arr = malloc(5 * sizeof(int)); // 정수 5개 크기의 메모리 할당 if (arr == NULL) { per.. 2024. 12. 27.
[C언어 18] File Input/Output (파일 입출력) 1. File Streams and FILE Pointers / 파일 스트림과 FILE 포인터개념: C 언어에서 파일 입출력은 FILE 포인터를 통해 관리됩니다. 파일 스트림은 데이터를 읽고 쓰기 위한 통로로 사용됩니다.주요 표준 스트림:stdin: 표준 입력 (키보드)stdout: 표준 출력 (콘솔)stderr: 표준 에러 출력 (에러 메시지)2. Opening and Closing Files / 파일 열기 및 닫기파일 열기 (fopen):형식: FILE *fopen(const char *filename, const char *mode);모드:"r": 읽기 모드"w": 쓰기 모드"a": 추가 모드"rb", "wb", "ab": 바이너리 모드파일 닫기 (fclose):형식: int fclose(FILE .. 2024. 12. 25.
728x90
반응형