Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
Programming

/

Algorithm & Data Structure

Các cấu trúc dữ liệu và thuật toán nguồn mở trong C

Bài giảng này đề cập đến các cấu trúc dữ liệu và thuật toán mới nhất được sử dụng trong các nguồn mở tiêu biểu như Linux.

(4.8) 6 đánh giá

79 học viên

  • jikim1770
알고리즘
코딩테스트
LinkedList
RedBlackTree#1
binary-search-trees
pattern-matching
C
Algorithm
Linux
gcc
data-structure

Dịch cái này sang tiếng Việt

  • Triển khai danh sách liên kết tổng quát

  • Cây Đỏ Đen và Cây Tăng cường sử dụng nó

  • Phân tích và triển khai mảng linh hoạt

  • Khớp mẫu: BF, KR, SO, MP, KMP, BM

  • Triển khai thuật toán tổng quát

  • thuật toán tìm kiếm bit

  • Kiểm tra tính toàn vẹn dữ liệu (bit chẵn lẻ, hàm băm)

Hình 14

Hiểu các kỹ thuật thuật toán cấu trúc dữ liệu mới nhất thông qua phân tích nguồn mở

  • Nó bao gồm dữ liệu cơ bản kết thúc bằng ngăn xếp, hàng đợi, danh sách liên kết và cây.

  • Chúng tôi đề cập đến các kỹ thuật tối ưu hóa bộ nhớ và tăng tốc mọi thứ.

  • Bao gồm các kỹ thuật trong mã nguồn mở được sử dụng trong các hệ thống nhạy cảm về tốc độ và bộ nhớ như kernel.

Nội dung học tập

Hình 3

Mục (1) Danh sách liên kết chung

Tìm hiểu kỹ thuật khái quát hóa Kiểu bằng container_of, cho phép bạn nối bất kỳ kiểu cấu trúc nào thành một danh sách duy nhất.

Phần (2) Băm chung

Tìm hiểu các kỹ thuật mới nhất cho cấu trúc dữ liệu băm sử dụng con trỏ kép có thể nhanh chóng tìm kiếm bất kỳ loại dữ liệu nào trong thời gian O(1).

Hình 4
Hình 5

Mục (3) Cây tìm kiếm nhị phân

Bạn sẽ học cách triển khai cây tìm kiếm nhị phân từ đầu và thậm chí cách sử dụng lệnh gọi đệ quy để tự động cân bằng cây.

Mục (4) Cây Đỏ Đen

Hiểu được quá trình chèn/xóa của Cây Đỏ Đen thông qua quá trình triển khai và tìm hiểu về cây tăng cường và cây khoảng là phiên bản nâng cao của Cây RB.

Hình 6
Hình 7

Mục (5) Mảng linh hoạt

Hiểu khái niệm về Mảng linh hoạt và tìm hiểu cách triển khai các kỹ thuật gộp bộ nhớ bằng cách sử dụng nó.

Phần (6) So khớp mẫu

Hiểu khái niệm về So khớp mẫu và tìm hiểu thông qua việc triển khai các kỹ thuật KR, SO, MP, KMP và BM tiêu biểu đã phát triển trong lịch sử.

Hình 8
Hình 9

Mục (7) Sắp xếp chung

Chúng ta sẽ tìm hiểu kỹ thuật hoán đổi tổng quát sử dụng void* và cách sử dụng nó để triển khai sắp xếp tổng quát. Chúng ta cũng sẽ tìm hiểu khái niệm ủy quyền sử dụng con trỏ hàm.

Mục (8) Thuật toán liên quan đến bit

Tìm hiểu cách triển khai nhiều thuật toán khác nhau (FFS, trọng số Hamming, Đảo ngược bit) bằng cách sử dụng toán tử bit.

Hình 10
Hình 11

Mục (9) Thuật toán liên quan đến tính toàn vẹn dữ liệu

Tìm hiểu về việc triển khai nhiều thuật toán toàn vẹn dữ liệu khác nhau (Bit chẵn lẻ, Tổng kiểm tra, CRC) đã được phát triển trong lịch sử.

Những điều cần lưu ý trước khi tham gia khóa học

Môi trường thực hành

  • Hệ điều hành và phiên bản (OS): Windows 10, 11, Ubuntu 18.04, 20.04

  • Công cụ chỉnh sửa: Windows vscode, Ubuntu VIM, gcc

  • Trình biên dịch: gcc

Tài liệu học tập

  • Định dạng tài liệu học tập được cung cấp (PPT, mã nguồn)

  • Trong giờ học, chúng tôi sử dụng PPT để viết lên bảng và chia sẻ làm tài liệu học tập.

Kiến thức và biện pháp phòng ngừa của người chơi

  • Kiến thức tiên quyết cho khóa học này: Ngôn ngữ C cơ bản, cấu trúc dữ liệu cơ bản và kiến thức về thuật toán.

  • Thông số kỹ thuật video bài giảng này: FPS-60, độ phân giải-1280*720, tốc độ lấy mẫu âm thanh-44.100

  • Hãy thoải mái đặt câu hỏi và bài giảng có thể được sửa đổi khi phiên bản mã nguồn mở được nâng cấp.

  • Tài liệu học tập được phân phát trong các bài giảng chỉ dành cho lớp học sử dụng và nghiêm cấm phân phát trái phép.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Nhà phát triển liên quan đến ngôn ngữ C

  • Bất cứ ai muốn tìm hiểu các thuật toán cấu trúc dữ liệu cơ bản và tìm hiểu các kỹ thuật mới nhất

  • Nhà phát triển nguồn mở

Cần biết trước khi bắt đầu?

  • Khái niệm cơ bản về ngôn ngữ C và thuật toán cấu trúc dữ liệu

Xin chào
Đây là

704

Học viên

66

Đánh giá

11

Trả lời

4.9

Xếp hạng

9

Các khóa học

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

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

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

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

 

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

Chương trình giảng dạy

Tất cả

69 bài giảng ∙ (17giờ 15phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

6 đánh giá

4.8

6 đánh giá

  • dondonh님의 프로필 이미지
    dondonh

    Đánh giá 4

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

    • egnachio0258님의 프로필 이미지
      egnachio0258

      Đánh giá 2

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      Khó quá đi mất.

      • raphaelcctm8331님의 프로필 이미지
        raphaelcctm8331

        Đánh giá 1

        Đánh giá trung bình 5.0

        5

        100% đã tham gia

        • inflearninfosec1600님의 프로필 이미지
          inflearninfosec1600

          Đánh giá 3

          Đánh giá trung bình 3.7

          4

          45% đã tham gia

          Bản thân bài giảng rất hay nhưng không phù hợp với người mới làm quen với cấu trúc dữ liệu. Giả sử rằng bạn đã biết cấu trúc dữ liệu và ngôn ngữ C, chúng tôi sẽ đề cập đến việc kết hợp nó với nguồn mở (bài giảng này dựa trên nhân Linux). Khi nói đến cấp độ nào là phù hợp, cấp độ tốt là có thể triển khai danh sách và cây bằng ngôn ngữ C mà không cần bất kỳ sự trợ giúp nào từ một bảng trống. Và... điều bị trừ 1 sao là... tiếng bàn phím cũng to như giọng nói. Điều này hoạt động như một yếu tố rất quan trọng làm gián đoạn sự tập trung của bài giảng. Âm thanh của bàn phím được truyền qua tai nghe nên khi nghe giảng tôi rất đau tai.

          • jyseo님의 프로필 이미지
            jyseo

            Đánh giá 49

            Đánh giá trung bình 5.0

            5

            67% đã tham gia

            1.850.631 ₫

            Khóa học khác của jikim1770

            Hãy khám phá các khóa học khác của giảng viên!

            Khóa học tương tự

            Khám phá các khóa học khác trong cùng lĩnh vực!