inflearn logo

Cấu trúc dữ liệu và giải thuật dễ nhất của Yalco

Đây là khóa học giúp bạn dễ dàng hiểu được các khái niệm cốt lõi của cấu trúc dữ liệu và thuật toán thông qua các hình ảnh minh họa trực quan và công cụ kiểm tra. Bạn sẽ được trực tiếp thực hiện từ những kiến thức cơ bản đến sắp xếp, tìm kiếm để biến chúng thành kỹ năng của chính mình.

(4.9) 111 đánh giá

1,274 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

Algorithm
Algorithm
data-structure
data-structure
Algorithm
Algorithm
data-structure
data-structure

Đánh giá từ những học viên đầu tiên

Đánh giá từ những học viên đầu tiên

4.9

5.0

HJuhoney

97% đã tham gia

Hiệu quả về giá cả và thời gian đều tuyệt vời. Những thứ mà tôi đã nhìn mãi mà vẫn mơ hồ trong các khóa học đắt tiền, giờ chỉ sau ba bốn tiếng xem liên tục là đã hiểu hết. Tôi chưa thử công cụ test và code thực hành nhưng chỉ xem video thôi cũng đã đáng đồng tiền bát gạo rồi. Tôi rất khuyến khích khóa học này.

5.0

doob9p

32% đã tham gia

Việc tạo ra bài giảng thông qua hoạt hình thật sự rất dễ hiểu và không làm mất tập trung khi xem! Đặc biệt là việc anh đã tạo ra giao diện để có thể xem và test theo từng cấu trúc dữ liệu thật tuyệt vời🔥

5.0

Jy._s

56% đã tham gia

Tôi luôn bị mắc kẹt ở phần đệ quy của cây và đã từ bỏ, nhưng thông qua bài giảng này cuối cùng tôi đã có thể hiểu hết được. Đặc biệt là luồng quay trở lại hàm trước đó thông qua return để kết nối các node rất khó hiểu, nhưng nhờ lời giải thích của giảng viên mà phần đó đã được giải quyết thật sảng khoái! Bây giờ tôi có thể hình dung trong đầu cách cây được cấu thành^^ Cảm ơn thầy!

Bạn sẽ nhận được điều này sau khi học.

  • Các khái niệm cốt lõi về hiệu suất thuật toán như độ phức tạp thời gian và độ phức tạp không gian

  • Nguyên lý và cách triển khai các cấu trúc dữ liệu chính như mảng, ngăn xếp, hàng đợi, cây và đồ thị

  • So sánh cách hoạt động và hiệu quả của các thuật toán sắp xếp khác nhau như sắp xếp nổi bọt (bubble sort), sắp xếp hợp nhất (merge sort) và sắp xếp nhanh (quick sort).

  • Hiểu các thuật toán thường xuyên xuất hiện trong các bài kiểm tra lập trình và thực tế như tìm kiếm DFS, BFS

  • Nâng cao khả năng triển khai cấu trúc dữ liệu và thuật toán thông qua thực hành sử dụng Java và Python.

Cấu trúc dữ liệu và thuật toán là nền tảng cơ bản của mọi nhà phát triển, đồng thời là trọng tâm của các bài kiểm tra coding và thực tế công việc.
Tuy nhiên, các khái niệm thường khó hiểu và chỉ đọc sách thôi thì hoàn toàn không thể nắm bắt được.
Khóa học này sẽ xóa tan sự mơ hồ đó bằng những ví dụ so sánh thực tế, hình ảnh trực quan và các bài thực hành trực tiếp 'chạm tay vào'.
Không dùng thuật ngữ phức tạp, tôi sẽ hướng dẫn bạn những cốt lõi cần thiết nhất một cách dễ hiểu và rõ ràng.
Nếu bạn muốn xây dựng nền tảng vững chắc từ đầu, hãy bắt đầu ngay với khóa học này.

👌 Chỉ cần biết một trong hai ngôn ngữ Python hoặc Java là OK!

👆 Bên trái là mã Python

👆 bên phải là mã Java

Tất cả các ví dụ trong bài giảng (ngoại trừ mảng động do đặc thù ngôn ngữ) đều được giải thích đồng thời bằng cả mã Python và Java.

Chỉ cần biết một trong hai ngôn ngữ là bạn đã có thể tham gia khóa học, và ngay cả khi bạn đã học các ngôn ngữ có cú pháp tương tự Java như JavaScript hay C#, bạn vẫn có thể theo dõi bài giảng mà không gặp nhiều khó khăn.

Việc vừa xem các mã nguồn được giải thích đồng thời, vừa xem xét sự khác biệt giữa hai ngôn ngữ cũng sẽ là một điểm học tập tốt.

🕹 Học cấu trúc dữ liệu và thuật toán thông qua việc trực tiếp chạm và thao tác

Chúng tôi cung cấp các công cụ kiểm tra như trên cho tất cả các cấu trúc dữ liệu và thuật toán được đề cập trong bài giảng.

Chúng tôi đã tạo ra công cụ này để các bạn có thể trực tiếp nhập các giá trị, thực thi các chức năng và quan sát từng bước của mỗi quá trình.

Với mỗi thao tác, độ phức tạp thời gian độ phức tạp không gian cũng được hiển thị, giúp bạn có thể tìm hiểu sâu hơn về từng cấu trúc dữ liệu và thuật toán.

👇 Bạn có thể nhấp vào để xem trước!

💡 Khóa học video chất lượng cao của Yalco - bậc thầy giải thích

YouTuber Yalco, người có thể giải thích mọi khái niệm khó và phức tạp một cách nhanh chóng, sẽ giúp bạn hiểu rõ các cấu trúc dữ liệu và thuật toán nan giải thông qua các ví dụ ẩn dụ và đồ họa trực quan chỉ trong một lần xem.

Tất cả các cảnh đều có phụ đề, và mã nguồn được giải thích bằng các đường chỉ dẫn trực quan mà không cần quá trình nhập liệu, giúp bạn trải nghiệm việc học nhanh chóng, dễ dàng và thuận tiện.

🖱 Cung cấp tất cả ví dụ dưới dạng snippet có thể sao chép và dán được

Mỗi bài học đều cung cấp các trang Notion để bạn có thể kiểm tra/sao chép mã ví dụ tương ứng và truy cập vào trang thử nghiệm. Bạn có thể tận dụng điều này để tiến hành việc học một cách thuận tiện và hiệu quả hơn.

Khuyên dùng cho những đối tượng sau!

Người tìm việc đang chuẩn bị cho bài kiểm tra coding

Sinh viên chuyên ngành Khoa học máy tính lần đầu tiếp cận các môn CS

Nhà phát triển muốn xây dựng nền tảng khái niệm vững chắc

  • Những người không quen thuộc với độ phức tạp thời gian và cấu trúc dữ liệu, hoặc
    không có thời gian để hệ thống lại kiến thức.

  • Những người muốn bắt đầu chuẩn bị cho kỳ thi coding test
    bằng cách vừa thực hành vừa hệ thống lại các khái niệm

  • Sinh viên năm 1, năm 2 từng thấy môn Cấu trúc dữ liệu/Giải thuật khó khăn

  • Những người cảm thấy lời giải thích của sách giáo khoa hay của giáo sư quá trừu tượng

  • Những người muốn nắm vững các khái niệm cốt lõi thông qua giải thích trực quan và thực hành.

  • Những người đã quen với công việc thực tế nhưng cảm thấy khái niệm cơ bản vẫn chưa vững chắc

  • Những người muốn hệ thống lại từ đầu và củng cố cả lý thuyết lẫn thực hành.

📋 Bạn sẽ học được những nội dung sau.

1. Độ phức tạp

  • Ý nghĩa của độ phức tạp thời gian và độ phức tạp không gian

  • Cách viết và cách giải thích ký hiệu Big-O

  • Các loại độ phức tạp chính và ví dụ thực tế


2. Mảng và Danh sách

  • Định nghĩa và cấu trúc bộ nhớ của mảng

  • Truy cập chỉ mục, sửa đổi phần tử, duyệt toàn bộ

  • Nguyên lý và chi phí của các thao tác chèn và xóa

  • Tìm kiếm tuyến tính dựa trên mảng

  • Sự khác biệt về khái niệm giữa danh sách và mảng


3. Ngăn xếp và Hàng đợi

  • Cấu trúc và thao tác của ngăn xếp (stack): push, pop, peek

  • Cấu trúc và thao tác của hàng đợi (queue): enqueue, dequeue

  • Khái niệm và nguyên lý của Call Stack

  • Triển khai dựa trên mảng và dựa trên danh sách liên kết


4. Cây

  • Cấu trúc của cây nhị phân: Gốc (root), nút (node), lá (leaf), chiều cao (height)

  • Các phương thức duyệt cây: Preorder, Inorder, Postorder, Level-order

  • Khái niệm về Cây tìm kiếm nhị phân (BST) và quy tắc chèn/tìm kiếm

  • Các điều kiện cân bằng và phép xoay của cây AVL

  • Các quy tắc về màu sắc và đặc điểm của cây Đỏ-Đen (Red-Black Tree)

5. Sắp xếp

  • Sắp xếp nổi bọt, Sắp xếp chọn, Sắp xếp chèn

  • Sắp xếp hợp nhất, Sắp xếp nhanh, Sắp xếp vun đống

  • So sánh cách thức hoạt động của từng thuật toán

  • Độ phức tạp thời gian theo từng thuật toán sắp xếp và các trường hợp tốt nhất/xấu nhất

  • Hiệu quả và mục đích sử dụng trong thực tế


6. Hash

  • Hàm băm và tính toán chỉ mục băm

  • Phương pháp giải quyết xung đột: Chaining, Open Addressing

  • Lưu trữ và tìm kiếm cặp khóa-giá trị

  • Phân tích độ phức tạp thời gian của Hash Map

  • Triển khai bảng băm đơn giản


7. Đồ thị

  • Các thành phần của đồ thị: nút (vertex), cạnh (edge)

  • Đồ thị có hướng vs Đồ thị vô hướng

  • Sự khác biệt tùy theo việc có trọng số hay không

  • Cách triển khai bằng danh sách kề / ma trận kề

  • Thuật toán DFS (Tìm kiếm theo chiều sâu) và BFS (Tìm kiếm theo chiều rộng)

  • Thuật toán đường đi ngắn nhất (Dijkstra, Floyd-Warshall, Bellman-Ford)

  • Thuật toán cây bao trùm nhỏ nhất (Kruskal, Prim)

Lưu ý trước khi học

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

  • Các công cụ kiểm tra và mã ví dụ được sử dụng trong bài giảng sẽ được cung cấp qua trang Notion.

Kiến thức tiên quyết và lưu ý

  • Kiến thức cơ bản đủ để có thể đọc được mã nguồn Python và Java

    • Hoặc kiến thức có thể xử lý các ngôn ngữ tương tự như Java như JavaScript hoặc C#

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

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

  • Dành cho những người đang theo học lớp Cấu trúc dữ liệu & Giải thuật

  • Những người đang chuẩn bị cho kỳ thi lập trình (coding test)

  • Những người mong muốn phát triển hơn nữa với tư cách là một nhà phát triển

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

  • Kiến thức cơ bản về Python hoặc Java (hoặc các ngôn ngữ tương tự)

Xin chào
Đây là yalco

34,532

Học viên

1,988

Đánh giá

96

Trả lời

4.9

Xếp hạng

17

Các khóa học

Tôi là YouTuber của kênh Từ điển Lập trình Nông cạn, đồng thời là tác giả của nhiều cuốn sách về IT. Tận dụng kinh nghiệm làm việc với tư cách là một nhà phát triển Full-stack, tôi đang tạo ra các nội dung giải thích những khái niệm lập trình khó bằng các phép ẩn dụ, ví dụ đơn giản và đôi khi là hoạt hình để người mới bắt đầu có thể dễ dàng thấu hiểu.

🎬   Kênh YouTube Từ điển Lập trình Nông cạn (Click!)
📕  Xem các cuốn sách của Yalco (Click!)

Thêm

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

Tất cả

34 bài giảng ∙ (4giờ 36phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

111 đánh giá

4.9

111 đánh giá

  • brook님의 프로필 이미지
    brook

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    32% đã tham gia

    Việc tạo ra bài giảng thông qua hoạt hình thật sự rất dễ hiểu và không làm mất tập trung khi xem! Đặc biệt là việc anh đã tạo ra giao diện để có thể xem và test theo từng cấu trúc dữ liệu thật tuyệt vời🔥

    • aquswitpo5474님의 프로필 이미지
      aquswitpo5474

      Đánh giá 10

      Đánh giá trung bình 5.0

      5

      97% đã tham gia

      Hiệu quả về giá cả và thời gian đều tuyệt vời. Những thứ mà tôi đã nhìn mãi mà vẫn mơ hồ trong các khóa học đắt tiền, giờ chỉ sau ba bốn tiếng xem liên tục là đã hiểu hết. Tôi chưa thử công cụ test và code thực hành nhưng chỉ xem video thôi cũng đã đáng đồng tiền bát gạo rồi. Tôi rất khuyến khích khóa học này.

      • jyseo님의 프로필 이미지
        jyseo

        Đánh giá 56

        Đánh giá trung bình 5.0

        5

        56% đã tham gia

        Tôi luôn bị mắc kẹt ở phần đệ quy của cây và đã từ bỏ, nhưng thông qua bài giảng này cuối cùng tôi đã có thể hiểu hết được. Đặc biệt là luồng quay trở lại hàm trước đó thông qua return để kết nối các node rất khó hiểu, nhưng nhờ lời giải thích của giảng viên mà phần đó đã được giải quyết thật sảng khoái! Bây giờ tôi có thể hình dung trong đầu cách cây được cấu thành^^ Cảm ơn thầy!

        • minganta888675님의 프로필 이미지
          minganta888675

          Đánh giá 11

          Đánh giá trung bình 4.9

          Đã chỉnh sửa

          5

          62% đã tham gia

          Nói ra quá dễ dàng như vậy khiến những khó khăn từ trước đến giờ trở nên vô nghĩa Thôi cứ nghe cái này đi

          • gzenden님의 프로필 이미지
            gzenden

            Đánh giá 10

            Đánh giá trung bình 4.9

            5

            9% đã tham gia

            Lần này khi tham gia thử thách Chuseok của anh Hyangro, tôi nhận ra mình hoàn toàn thiếu kiến thức cơ bản về CS nên đã đăng ký khóa học để bổ sung phần này, và quả nhiên phương pháp giảng dạy bằng animation của anh Yalco thực sự dễ hiểu và thấm vào tai, khiến tôi cảm thấy rất vui 😊😊

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

            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!

            925.140 ₫