개발 · 프로그래밍

/

알고리즘 · 자료구조

오픈소스 자료구조 및 알고리즘 in C

리눅스 등 대표적인 오픈소스에서 사용되는 최신 자료구조와 알고리즘을 다루는 강의 입니다.

(4.7) 수강평 3개

수강생 61명

Thumbnail

중급자를 위해 준비한
[알고리즘 · 자료구조, C] 강의입니다.

이런 걸
배워요!

  • 일반화된 링크드 리스트 구현

  • 레드 블랙트리와 이를 이용한 증강 트리

  • Flexible Array 분석 및 구현

  • 패턴 매칭 : BF, KR, SO, MP, KMP, BM

  • 일반화된 알고리즘 구현

  • 비트 검색 알고리즘

  • 데이터 무결성 체크(패리티비트, 해쉬)

그림14

오픈소스 분석을 통한 최신 자료구조 알고리즘 기법 이해

  • stack,queue,linked list,tree 로 끝나는 기본 자료의 이후를 다룹니다.

  • 메모리 최적화와 속도를 더 빠르게 하기 위한 기법들을 다룹니다.

  • 커널 처럼 속도와 메모리에 민감한 시스템에서 사용하는 open source내의 기법을 다룹니다.

학습 내용

그림3

섹션 (1) Generic Linked List

어떤 타입의 구조체든 하나의 리스트 만으로 연결할 수 있는 container_of 를 이용한 Type 일반화 기법을 배웁니다.

섹션 (2) Generic Hash

어떤 타입의 데이터든 O(1) 시간만에 빠르게 검색할 수 있는 이중 포인터를 이용한 해쉬 자료구조의 최신 기법을 배웁니다.

그림4
그림5

섹션 (3) Binary Search Tree

이진 탐색트리를 처음 부터 구현해 보고 재귀호출을 이용한 자동 밸런스 기능까지 배웁니다.

섹션 (4) Red Black Tree

Red Black Tree의 삽입/삭제 과정을 구현으로 이해하고 RB Tree를 발전시킨 증강트리와 인터벌 트리까지 배웁니다.

그림6
그림7

섹션 (5) Flexible Array

Flexible Array의 개념을 이해하고 이를 이용한 메모리 풀링 기법을 구현으로 배웁니다.

섹션 (6) Pattern Matching

Pattern Matching 의 개념을 이해하고 역사적으로 발전해온 대표적인 KR,SO,MP,KMP,BM 기법을 구현으로 배웁니다.

그림8
그림9

섹션 (7) Generic Sort

void*를 이용한 일반화된 swap기법을 다루고 이를 이용한 일반화된 sort를 배웁니다. 또한 함수 포인터를 이용한 위임 개념도 함께 다룹니다.

섹션 (8) Bit 관련 Algorithm

Bit 연산자를 이용한 다양한 알고리즘(FFS, Hamming weight, Bit Reverse)을 구현으로 배웁니다.

그림10
그림11

섹션 (9) 데이터 무결성 관련 Algorithm

역사적으로 발전해온 다양한 데이터 무결성 알고리즘(Parity Bit, Check Sum, CRC)을 구현으로 배웁니다.

수강 전 참고 사항

실습 환경

  • 운영 체제 및 버전(OS): Windows 10,11 Ubuntu 18.04, 20.04

  • 편집 도구 : Windows vscode, Ubuntu VIM, gcc

  • 컴파일러 : gcc

학습 자료

  • 제공하는 학습 자료 형식 (PPT, 소스 코드)

  • 수업 시 ppt를 이용한 판서를 진행하고 이를 수업 자료로 공유합니다.

선수 지식 및 유의사항

  • 본 과정을 듣기 위한 선수 지식 : C언어 기본, 기본 자료구조 알고리즘 지식

  • 본 강의 동영상 사양 : FPS-60, 해상도-1280*720, 오디오 샘플 레이트-44,100

  • 언제든 질문해 주시고, 강의는 open source 버전 업그레이드 시 수정될 수 있습니다.

  • 강의 시 배포되는 학습 자료는 수업에만 참고 하시고 무단 배포는 금합니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • C언어 관련 개발자

  • 기본 자료구조 알고리즘을 배우고 최신 기법을 알고자 하는 분

  • 오픈 소스 관련 개발자

선수 지식,
필요할까요?

  • C언어 기본 및 자료구조 알고리즘

김정인 강사님은 오픈소스가 중요하다며

리눅스 커널 및 딥러닝의 구현 소스를 취미 삼아 매일 분석 하는 오픈 소스 매니아 입니다.

소스를 통해 이해 한다며 무작정 소스 분석으로 모든 원리를 이해하려 하므로

수강 시 소스 폭탄에 주의 해야 합니다.

 

강의문의 : jikim@imguru.co.kr

커리큘럼

전체

69개 ∙ (17시간 15분)

수업 자료

가 제공되는 강의입니다.

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!