728x90
반응형

c언어 독학 3

[C언어] 정렬 알고리즘(분할 정복 알고리즘) - 병합정렬(Merge Sort), 퀵 정렬(Quick Sort)

1. 병합 정렬(Merge Sort)분할 정복 전략을 사용하여 배열을 반으로 나누고, 각각을 정렬한 후 병합하는 방식.안정 정렬: 동일한 값의 상대적 순서를 유지시간 복잡도: O(N log N)공간 복잡도: O(N)동작 과정배열을 전반으로 나눔나눈 하위 배열을 각각 재귀적으로 정렬두개의 정렬된 배열을 병합하여 하나의 정렬된 배열을 만듬예시 코드#include void merge(int arr[], int left, int mid, int right) { int n1 = mid - left + 1; int n2 = right - mid; int L[n1], R[n2]; for (int i = 0; i 2. 퀵 정렬(Quick Sort)배열에서 하나의 피벗(Pivot)을 선택한 후, 피..

개발/C 2025.01.24

[C언어] 기초 자료구조 - 해시(Hash)

1. 해시(Hash)란?해시는 키(Key)를 기반으로 데이터를 저장하고 검색하는 데 사용되는 자료구조. 해싱(Hashing)기법을 통해 키를 해시 함수(Hash Function)로 처리하여 고유한 해시 값(Hash Value)을 생성.특징데이터의 삽입, 삭제, 검색을 O(1) 시간 복잡도로 처리동일한 해시 값이 발생할 경우 충돌(Collision)이 발생할 수 있음활용 사례데이터베이스 인덱싱캐싱암호화 알고리즘집합(Set)과 맵(Map) 구현2. 해시 테이블(Hash Table)의 구조키(Key): 고유한 값(문자열, 정수 등).해시 함수(Hash Function)키를 일정 범위의 정수로 변환.예: hash(key) = key % table_size해시 테이블배열 기반 자료구조로, 해시 값을 인덱스로 사용..

개발/C 2025.01.22

[C언어] 기초 자료구조 - 배열 (Array)

1. 배열이란?배열은 동일한 데이터 타입의 값을 연속된 메모리 공간에 저장하는 자료 구조 입니다.특징인덱스를 사용하여 각 요소에 접근메모리 공간이 연속적으로 할당됨선언 시 크기를 고정해야 함예시 코드#include int main() { int arr[5] = {10, 20, 30, 40, 50}; printf("첫 번째 요소: %d\n", arr[0]); // 10 출력 return 0;}2. 배열 선언 및 초기화배열의 선언데이터형 배열이름[크기];배열 초기화명시적 초기화자동 초기화#include int main() { int arr1[5] = {1, 2, 3}; // 나머지 요소는 0으로 초기화됨 int arr2[] = {4, 5, 6}; // 크기 생략 가능 pri..

개발/C 2025.01.21
728x90
반응형