인프런 영문 브랜드 로고
인프런 영문 브랜드 로고
Programming

/

Algorithm & Data Structure

オープンソースデータ構造とアルゴリズム in C

Linuxなど代表的なオープンソースで使用される最新のデータ構造とアルゴリズムを扱う講義です。

C
Algorithm
Linux
gcc
data-structure

中級者のための講座です。

こんなことが学べます

  • 一般化されたリンクリストの実装

  • レッドブラックツリーとそれを使用した拡張木

  • Flexible Arrayの分析と実装

  • パターンマッチング:BF、KR、SO、MP、KMP、BM

  • 一般化されたアルゴリズムの実装

  • ビット検索アルゴリズム

  • データ整合性チェック(パリティビット、ハッシュ)

図14

オープンソース分析による最新のデータ構造アルゴリズム技術の理解

  • stack,queue,linked list,tree で終わる基本資料の以降を扱います。

  • メモリの最適化と高速化のためのテクニックを扱います。

  • カーネルのように速度とメモリに敏感なシステムで使用するオープンソース内の技術を扱います。

学習内容

図3

セクション(1) Generic Linked List

どのタイプの構造体でも 1 つのリストだけで連結できる 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* を使った一般化されたスワップ手法を扱い、それを使った一般化された sort を学びます。また、関数ポインタを使用した委任の概念も一緒に扱います。

セクション (8) Bit 関連 Algorithm

Bit演算子を使用したさまざまなアルゴリズム(FFS、Hamming weight、Bit Reverse)を実装で学びます。

図10
図11

セクション (9) データ整合性に関するアルゴリズム

歴史的に発展してきたさまざまなデータ整合性アルゴリズム(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

  • いつでも質問してください。レッスンはオープンソースバージョンのアップグレード時に変更されることがあります。

  • 講義の際に配布される学習資料は授業のみ参考にして無断配布は禁じます。

こんな方に
おすすめです!

学習対象は
誰でしょう?

  • C言語関連開発者

  • 基本データ構造アルゴリズムを学び、最新の技術を知りたい方

  • オープンソース関連開発者

前提知識、
必要でしょうか?

  • C言語基本およびデータ構造アルゴリズム

こんにちは
です。

627

受講生

48

受講レビュー

8

回答

4.9

講座評価

9

講座

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

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

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

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

 

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

カリキュラム

全体

69件 ∙ (17時間 15分)

講義資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなに役立つ受講レビューを書いてください!