Nội dung khóa học
- Những điểm mạnh và điểm yếu của các cấu trúc dữ liệu. Từ đó lựa chọn cấu trúc dữ liệu tốt nhất để biểu diễn dữ liệu trong ứng dụng bạn đang triển khai.
- Rất nhiều các thuật toán phổ biến thường hay được sử dụng để sắp xếp dữ liệu. Từ đó nâng cao hiệu quả sắp xếp những tập dữ liệu kích thước lớn.
- Chi tiết mã nguồn triển khai của mỗi cấu trúc dữ liệu bằng ngôn ngữ lập trình Java. Từ đó bạn sẽ hiểu được cả lý thuyết và cách triển khai cụ thể trong ngôn ngữ lập trình.
- Các bài tập đa dạng, phong phú với lời giải mẫu tương ứng. Bạn muốn ăn hành? Chúng tôi sẽ bán cho bạn. Thực hành chính là chìa khóa để bạn hiểu và vận dụng lý thuyết tốt nhất.
Yêu cầu bắt buộc:
Sau đây là các yêu cầu bắt buộc để học tốt khoá học Cấu trúc dữ liệu và giải thuật với Java:
- Bạn phải nắm được các khái niệm cơ bản và biết triển khai code Java.
- Bạn phải có một chiếc máy tính cá nhân.
- Bạn phải sẵn sàng tiến bộ, sẵn sàng va chạm với những vấn đề từng khiến bạn nhụt chí.
- Bạn nên có kĩ năng tiếng Anh để đọc, tham khảo tài liệu.
Kết quả mong muốn
- Hiểu và áp dụng được các cấu trúc dữ liệu đã học.
- Hiểu và áp dụng được các thuật toán đã học.
- Tự tin trong các bài kiểm tra ở trường.
- Tự tin khi đi phỏng vấn vòng thuật toán.
- Trang bị kiến thức nền tảng cho sự nghiệp lập trình của bạn.
Thời gian sử dụng khóa học
Đối với nền tảng web:
- Bạn có 3 lần kích hoạt khóa học. Mỗi lần sử dụng trong vòng 20 tuần.
- Thời điểm kích hoạt tùy ý bạn.
- Mỗi khi kích hoạt thành công khóa học sẽ đếm ngược và khóa lại khi hết 20 tuần.
- Gói mua trên web tương đương gói vĩnh viễn trên app Branium Edu(áp dụng với các gói mua từ ngày 9/9/2025).
Đối với nền tảng mobile app:
- Gói hàng năm: hạn sử dụng trong vòng 1 năm kể từ ngày mua.
- Gói vĩnh viễn: không có hạn sử dụng.
Thông tin khóa học
- Số bài học 126
- Quiz 0
- Thời lượng 20 weeks
- Cấp độ Mọi cấp độ
- Ngôn ngữ Tiếng Việt
- Số lượng học viên 373
- Chứng nhận Không
- Assessments Có
- 13 Sections
- 126 Lessons
- 20 Weeks
Expand all sectionsCollapse all sections
- Giới thiệu và cài đặt công cụ9 ItemsChương này sẽ giới thiệu về khóa học và hướng dẫn cài đặt công cụ cần thiết để tiến hành học tập.
- 1.1NỘI QUY SỬ DỤNG KHÓA HỌC3 p
- 1.2Cài đặt công cụ IntelliJ cho máy chạy Windows10 p
- 1.3Cách học lập trình hiệu quả trên Branium6 p
- 1.4Cài đặt IntellJ cho máy Mac6 p
- 1.5Cài đặt công cụ Apache Netbeans9 p
- 1.6Cài đặt JDK8 p
- 1.7Nhóm, trang hỗ trợ học tập3 p
- 1.8Giới thiệu về khóa học Cấu trúc dữ liệu và giải thuật với Java10 p
- 1.9Các khái niệm mở đầu10 p
- Chương 1: Mảng và một số phương pháp giải quyết vấn đề10 ItemsChương này ta sẽ tìm hiểu và vận dụng các kiến thức về mảng. Tìm hiểu và tính giá trị bigO.
- 2.1Bài 1.1. Mảng 1 chiều39 p
- 2.2Bài 1.2. Mảng 2 chiều36 p
- 2.3Bài 1.3. Độ phức tạp thuật toán25 p
- 2.4Bài 1.4. Đệ quy25 p
- 2.5Bài 1.5. Quy hoạch động53 p
- 2.6Bài 1.6. Quay lui39 p
- 2.7Bài 1.7. Thuật toán sinh5 p
- 2.8Bài 1.8. Sinh xâu nhị phân độ dài n13 p
- 2.9Bài 1.9. Sinh hoán vị chính tắc17 p
- 2.10Bài 1.10. Sinh tổ hợp chập k của n27 p
- Chương 2: Danh sách liên kết(linked list)12 ItemsChương này sẽ tập trung vào các biến thể của danh sách liên kết và các thao tác cơ bản trên chúng.
- 3.1Bài 2.1. Giới thiệu về danh sách liên kết16 p
- 3.2Bài 2.2. Thêm node và duyệt danh sách liên kết đơn34 p
- 3.3Bài 2.3. Thêm node và duyệt danh sách liên kết đôi19 p
- 3.4Bài 2.4. Cập nhật dữ liệu cho 1 node của danh sách liên kết23 p
- 3.5Bài 2.5. Xóa 1 node khỏi danh sách liên kết đơn24 p
- 3.6Bài 2.6. Xóa 1 node khỏi danh sách liên kết đôi20 p
- 3.7Bài 2.7. Sắp xếp danh sách liên kết16 p
- 3.8Bài 2.8. Tìm kiếm, đếm node trong danh sách liên kết18 p
- 3.9Bài 2.9. Lớp LinkedList trong Java17 p
- 3.10Bài 2.10. Lớp ArrayList trong Java28 p
- 3.11Bài 2.11. Lớp Vector trong Java24 p
- 3.12Bài 2.12. Danh sách liên kết vòng22 p
- Chương 3: Ngăn xếp(stack)9 ItemsNội dung chương này sẽ tập trung vào stack và các thao tác với stack.
- 4.1Bài 3.1. Giới thiệu về stack6 p
- 4.2Bài 3.2. Tạo stack từ mảng28 p
- 4.3Bài 3.3. Tạo stack từ danh sách liên kết16 p
- 4.4Bài 3.4. Tìm hiểu Stack trong thư viện Java15 p
- 4.5Bài 3.5. Các thao tác và độ phức tạp của Stack10 p
- 4.6Bài 3.6. Ứng dụng thực tế của Stack10 p
- 4.7Bài 3.7. Stack và xử lý biểu thức toán học10 p
- 4.8Bài 3.8. Call Stack và đệ quy10 p
- 4.9Bài 3.9. Các bài toán Stack nâng cao10 p
- Chương 4: Hàng đợi(queue)12 ItemsChương này ta sẽ tìm hiểu về hàng đợi và các thao tác trên hàng đợi.
- 5.1Bài 4.1. Giới thiệu về hàng đợi11 p
- 5.2Bài 4.2. Tạo hàng đợi từ mảng17 p
- 5.3Bài 4.3. Tạo hàng đợi từ danh sách liên kết17 p
- 5.4Bài 4.4. Hàng đợi vòng47 p
- 5.5Bài 4.5. Hàng đợi ưu tiên30 p
- 5.6Bài 4.6. Tìm hiểu lớp PriorityQueue trong thư viện Java22 p
- 5.7Bài 4.7. Ứng dụng thực tế của hàng đợi10 p
- 5.8Bài 4.8. Hàng đợi hai đầu trong Java10 p
- 5.9Bài 4.9. Cài đặt hàng đợi bằng hai ngăn xếp10 p
- 5.10Bài 4.10. Hàng đợi đơn điệu10 p
- 5.11Bài 4.11. Hàng đợi an toàn luồng(Concurrent Queue)10 p
- 5.12Bài 4.12. Hàng đợi đồng thời và mô hình Producer–Consumer10 p
- Chương 5: Cây(trees)9 ItemsChương này ta sẽ tập trung chủ yếu vào phần cây nhị phân và thao tác trên nó.
- 6.1Bài 5.1. Giới thiệu về cây12 p
- 6.2Bài 5.2. Cây nhị phân tìm kiếm26 p
- 6.3Bài 5.3. Duyệt cây nhị phân tìm kiếm17 p
- 6.4Bài 5.4. Thêm node vào cây nhị phân tìm kiếm16 p
- 6.5Bài 5.5. Tìm giá trị x trong cây nhị phân tìm kiếm11 p
- 6.6Bài 5.6. Xác định tổng số node và số lượng node lá của cây nhị phân tìm kiếm11 p
- 6.7Bài 5.7. Xóa node khỏi cây nhị phân tìm kiếm15 p
- 6.8Bài 5.8. Lớp TreeSet trong thư viện Java20 p
- 6.9Bài 5.9. Lớp TreeMap trong thư viện Java23 p
- Chương 6: Đống(heaps)8 ItemsNội dung chương này ta sẽ tìm hiểu về heap và các thao tác liên quan.
- Chương 7: Bảng băm(hashtables)9 ItemsNội dung chương này ta sẽ tìm hiểu chi tiết về bảng băm và các thao tác cũng như ứng dụng của nó.
- 8.1Bài 7.1. Giới thiệu về bảng băm20 p
- 8.2Bài 7.2. Bảng băm do người dùng tự định nghĩa65 p
- 8.3Bài 7.3. Xóa cặp key-value khỏi bảng băm16 p
- 8.4Bài 7.4. Cập nhật phần tử trong bảng băm11 p
- 8.5Bài 7.5 Băm lại các phần tử của bảng băm13 p
- 8.6Bài 7.6. Lấy danh sách key, value hiện có trong bảng băm20 p
- 8.7Bài 7.7. Bucket sort18 p
- 8.8Bài 7.8. Lớp Hashtable trong thư viện Java16 p
- 8.9Bài 7.9. Lớp HashMap trong thư viện Java8 p
- Chương 8: Các thuật toán sắp xếp12 ItemsNội dung chương này sẽ mổ xẻ phân tích và triển khai các thuật toán sắp xếp.
- 9.1Bài 8.1. Giới thiệu các thuật toán sắp xếp6 p
- 9.2Bài 8.2. Thuật toán bubble sort29 p
- 9.3Bài 8.3. Thuật toán selection sort15 p
- 9.4Bài 8.4. Thuật toán insertion sort14 p
- 9.5Bài 8.5. Thuật toán shell sort26 p
- 9.6Bài 8.6. Thuật toán merge sort22 p
- 9.7Bài 8.7. Thuật toán quick sort43 p
- 9.8Bài 8.8. Thuật toán counting sort17 p
- 9.9Bài 8.9. Thuật toán radix sort26 p
- 9.10Bài 8.10. Thuật toán Tim sort10 p
- 9.11Bài 8.11. Sắp xếp mảng với lớp Arrays của thư viện Java21 p
- 9.12Bài 8.12. Sắp xếp trong các Collections của Java Collection Framework18 p
- Chương 9: Các thuật toán tìm kiếm12 ItemsNội dung chương này sẽ tập trung vào các thuật toán tìm kiếm và triển khai của nó.
- 10.1Bài 9.1. Giới thiệu các thuật toán tìm kiếm6 p
- 10.2Bài 9.2. Thuật toán tìm kiếm tuyến tính17 p
- 10.3Bài 9.3. Thuật toán tìm kiếm nhị phân18 p
- 10.4Bài 9.4. Tìm kiếm với cây nhị phân tìm kiếm18 p
- 10.5Bài 9.5. Tìm kiếm với bảng băm9 p
- 10.6Bài 9.6. Tìm kiếm nhảy10 p
- 10.7Bài 9.7. Tìm kiếm nội suy10 p
- 10.8Bài 9.8. Tìm kiếm hàm mũ10 p
- 10.9Bài 9.10. Tìm kiếm nhị phân trên đáp án10 p
- 10.10Bài 9.11. Tìm kiếm trong mảng xoay10 p
- 10.11Bài 9.12. Tìm kiếm bằng Trie10 p
- 10.12Bài 9.13. Tìm kiếm Fibonacci10 p
- Chương 10: Đồ thị(graphs)20 ItemsNội dung chương này chủ yếu tập trung vào các thuật toán thao tác với đồ thị.
- 11.1Bài 10.1. Giới thiệu tổng quan về đồ thị28 p
- 11.2Bài 10.2. Thuật toán tìm kiếm theo chiều sâu DFS34 p
- 11.3Bài 10.3. Thuật toán tìm kiếm theo chiều rộng BSF22 p
- 11.4Bài 10.4. Phát hiện chu trình trong đồ thị10 p
- 11.5Bài 10.5. Thành phần liên thông và thành phần liên thông mạnh10 p
- 11.6Bài 10.6. Thuật toán Dijkstra tìm đường đi ngắn nhất37 p
- 11.7Bài 10.7. Thuật toán Bellman-Ford27 p
- 11.8Bài 10.8. Thuật toán Floy-Warshall10 p
- 11.9Bài 10.9. Đường đi ngắn nhất trên DAG10 p
- 11.10Bài 10.10. Đường đi ngắn nhất với trọng số 0–110 p
- 11.11Bài 10.11. Thuật toán A* tìm đường đi ngắn nhất10 p
- 11.12Bài 10.12. Cây khung nhỏ nhất – Prim và Kruskal10 p
- 11.13Bài 10.13. Cấu trúc Disjoint Set Union10 p
- 11.14Bài 10.14. Thuật toán sắp xếp topo10 p
- 11.15Bài 10.15. Cầu và đỉnh khớp trong đồ thị10 p
- 11.16Bài 10.16. Đường đi Euler và chu trình Euler10 p
- 11.17Bài 10.17. Ghép cặp hai phía10 p
- 11.18Bài 10.18. Luồng cực đại và lát cắt cực tiểu10 p
- 11.19Bài 10.19. Đường đi Hamilton và các bài toán NP nâng cao10 p
- 11.20Bài 10.20. Các thuật toán đường đi ngắn nhất nâng cao10 p
- Chương 11: Tài liệu tham khảo2 ItemsChương này sẽ cung cấp cho các bạn các bài giải mẫu và tài liệu tham khảo.
- ĐỀ TỐT NGHIỆP CUỐI KHÓA2 Items

