강의

멘토링

로드맵

개발 · 프로그래밍

/

알고리즘 · 자료구조

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

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

(4.9) 수강평 8개

수강생 85명

  • 김정인
알고리즘
코딩테스트
LinkedList
RedBlackTree#1
binary-search-trees
pattern-matching
CLinuxgccdata-structure

이런 걸 배울 수 있어요

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

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

  • 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언어 기본 및 자료구조 알고리즘

안녕하세요
입니다.

773

수강생

82

수강평

12

답변

4.9

강의 평점

9

강의

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

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

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

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

 

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

커리큘럼

전체

69개 ∙ (17시간 15분)

해당 강의에서 제공:

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

수강평

전체

8개

4.9

8개의 수강평

  • 정병주님의 프로필 이미지
    정병주

    수강평 130

    평균 평점 5.0

    5

    9% 수강 후 작성

    • junewoo.kang님의 프로필 이미지
      junewoo.kang

      수강평 2

      평균 평점 5.0

      5

      61% 수강 후 작성

      • ddh님의 프로필 이미지
        ddh

        수강평 4

        평균 평점 5.0

        5

        30% 수강 후 작성

        • egnachio님의 프로필 이미지
          egnachio

          수강평 2

          평균 평점 5.0

          5

          100% 수강 후 작성

          너무어려버잉

          • raphael_cctm님의 프로필 이미지
            raphael_cctm

            수강평 1

            평균 평점 5.0

            5

            100% 수강 후 작성

            월 ₩17,600

            5개월 할부 시

            ₩88,000

            김정인님의 다른 강의

            지식공유자님의 다른 강의를 만나보세요!

            비슷한 강의

            같은 분야의 다른 강의를 만나보세요!