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:
- 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
- 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.
- Nội dung khóa học cần phải cập nhật và hỗ trợ trong quá trình học nên chúng tôi không cung cấp khóa học vĩnh viễn.
Thông tin khóa học
- Số bài học 94
- 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ó
Chương trình đào tạo
- 13 Sections
- 94 Lessons
- 20 Weeks
Expand all sectionsCollapse all sections
- Giới thiệu và cài đặt công cụChươ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.10
- 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.9Thay đổi giao diện trang web4 p
- 1.10Giớ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.11Cá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 đềChươ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.10
- 2.0Bài 1.1. Mảng 1 chiều39 p
- 2.1Bài 1.2. Mảng 2 chiều36 p
- 2.2Bài 1.3. Độ phức tạp thuật toán25 p
- 2.3Bài 1.4. Đệ quy25 p
- 2.4Bài 1.5. Quy hoạch động53 p
- 2.5Bài 1.6. Quay lui39 p
- 2.6Bài 1.7. Thuật toán sinh5 p
- 2.7Bài 1.8. Sinh xâu nhị phân độ dài n13 p
- 2.8Bài 1.9. Sinh hoán vị chính tắc17 p
- 2.9Bà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)Chươ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.12
- 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)Nội dung chương này sẽ tập trung vào stack và các thao tác với stack.4
- Chương 4: Hàng đợi(queue)Chương này ta sẽ tìm hiểu về hàng đợi và các thao tác trên hàng đợi.6
- Chương 5: Cây(trees)Chươ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ó.9
- 6.0Bài 5.1. Giới thiệu về cây12 p
- 6.1Bài 5.2. Cây nhị phân tìm kiếm26 p
- 6.2Bài 5.3. Duyệt cây nhị phân tìm kiếm17 p
- 6.3Bài 5.4. Thêm node vào cây nhị phân tìm kiếm16 p
- 6.4Bài 5.5. Tìm giá trị x trong cây nhị phân tìm kiếm11 p
- 6.5Bà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.6Bài 5.7. Xóa node khỏi cây nhị phân tìm kiếm15 p
- 6.7Bài 5.8. Lớp TreeSet trong thư viện Java20 p
- 6.8Bài 5.9. Lớp TreeMap trong thư viện Java23 p
- Chương 6: Đống(heaps)Nội dung chương này ta sẽ tìm hiểu về heap và các thao tác liên quan.8
- Chương 7: Bảng băm(hashtables)Nộ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ó.9
- 8.0Bài 7.1. Giới thiệu về bảng băm20 p
- 8.1Bài 7.2. Bảng băm do người dùng tự định nghĩa65 p
- 8.2Bài 7.3. Xóa cặp key-value khỏi bảng băm16 p
- 8.3Bài 7.4. Cập nhật phần tử trong bảng băm11 p
- 8.4Bài 7.5 Băm lại các phần tử của bảng băm13 p
- 8.5Bài 7.6. Lấy danh sách key, value hiện có trong bảng băm20 p
- 8.6Bài 7.7. Bucket sort18 p
- 8.7Bài 7.8. Lớp Hashtable trong thư viện Java16 p
- 8.8Bài 7.9. Lớp HashMap trong thư viện Java8 p
- Chương 8: Các thuật toán sắp xếpNộ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.11
- 9.0Bài 8.1. Giới thiệu các thuật toán sắp xếp6 p
- 9.1Bài 8.2. Thuật toán bubble sort29 p
- 9.2Bài 8.3. Thuật toán selection sort15 p
- 9.3Bài 8.4. Thuật toán insertion sort14 p
- 9.4Bài 8.5. Thuật toán shell sort26 p
- 9.5Bài 8.6. Thuật toán merge sort22 p
- 9.6Bài 8.7. Thuật toán quick sort43 p
- 9.7Bài 8.8. Thuật toán counting sort17 p
- 9.8Bài 8.9. Thuật toán radix sort26 p
- 9.9Bài 8.10. Sắp xếp mảng với lớp Arrays của thư viện Java21 p
- 9.10Bài 8.11. 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ếmNộ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ó.5
- Chương 10: Đồ thị(graphs)Nộ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ị.6
- Chương 11: Tài liệu tham khảoChươ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.2
- ĐỀ TỐT NGHIỆP CUỐI KHÓA2

