Đối với người học lập trình nói chung, cấu trúc dữ liệu và giải thuật là một trong những môn quan trọng và thường được dạy vào khoảng năm 2 và năm 3 đại học. Cảm giác của rất nhiều bạn nếu chưa tự tin là dễ bị nản ngay từ giai đoạn đầu và dần dần sẽ khó khăn hơn để bắt nhịp. Đồng thời, học tốt cấu trúc dữ liệu và giải thuật sẽ giúp cho các dòng code của mình trở nên tối ưu hơn.
Trong bài viết này, mình sẽ tổng hợp các kiến thức cơ bản cùng các kinh nghiệm của mình để giúp các bạn đi đúng hướng và cảm thấy sự thú vị của môn học này. Tất nhiên xung quanh ta vẫn có rất nhiều cao thủ, việc giới thiệu các kiến thức khó sẽ khiến mọi người bị ngợp nên trong phạm vi bài viết này, mình sẽ giới thiệu các vấn đề cơ bản [ít nhất là trong các bài kiểm tra trên trường]. Hãy cùng tham khảo bài viết dưới đây:
Đầu tiên, để học được cấu trúc dữ liệu và giải thuật [Từ giờ đến cuối bài viết mình sẽ gọi tắt là thuật toán], các bạn cần phải có khả năng tự học cao. Phải có khả năng tìm kiếm tốt. Hầu hết mọi thứ cơ bản đều có trên google, trong khuôn khổ bài viết này mình sẽ đưa ra các vấn đề quan trọng, để các bạn follow theo keyword đó, tìm kiếm cho mình một nền tảng vững chắc.
Tiếp theo, các bạn cần chọn cho mình một ngôn ngữ lập trình. Theo mình thì C/C++ là ngôn ngữ nên được sử dụng khi học thuật toán vì:
- Các kiểu dữ liệu trong ngôn ngữ C/C++ được định nghĩa rõ ràng, có kiểu truyền tham chiếu và tham trị khá hay.
- Tốc độ thực thi nhanh.
- Có nhiều sách, tài liệu tham khảo trên internet về cấu trúc dữ liệu và giải thuật được viết bằng C/C++.
Tuy nhiên, nếu muốn hoặc có nền tảng các ngôn ngữ khác [java, python,...] thì mọi người cũng có thể sử dụng để học được vì theo công thức sau:
Cấu trúc dữ liệu + Giải thuật = Chương trình
Việc viết một chương trình, giải một bài toán được kết hợp bởi 2 yếu tố, lựa chọn một cấu trúc dữ liệu phù hợp, sau đó tìm ra phương hướng kết hợp mọi thứ bằng giải thuật để có thể giải được bài toán. Do đó bạn có thể lựa chọn ngôn ngữ yêu thích và bắt đầu.
Các vấn đề cần quan tâm
Trong phần này mình sẽ nói về 7 vấn đề sau:
1. Độ phức tạp thuật toán [big O]
2. Sắp xếp và tìm kiếm nhị phân
3. Các phương pháp sinh
4. Đệ quy, quay lui
5. Cấu trúc dữ liệu stack, queue, dequeue
6. Quy hoạch động
7. Đồ thị.
1. Độ phức tạp thuật toán [big O]
Khái niệm độ phức tạp thuật toán có thể hiểu đơn giản là độ nhanh hay chậm của thuật toán. Chữ O là ký hiệu được sử dụng cho độ phức tạp thuật toán. Các loại độ phức tạp thuật toán cơ bản có thể kể đến là:
Trong đó, n là biểu thị kích thước đầu vào.
Lưu ý rằng nếu các bạn sử dụng 2 vòng lặp cùng cấp thì kích thước sẽ là 2*n, nhưng độ phức tạp thuật toán biểu diễn vẫn là O[n] vì mình chỉ lấy xấp xỉ thôi.
Và nếu bạn của bạn nói là 2 vòng lặp lồng nhau thì độ phức tạp sẽ là O[n^2] thì chúng ta đôi khi phải xem xét kỹ hơn thuật toán. Như ví dụ sau:
int i = 0; int n = 1000; while [i < n/2] { i++; // Do somethings in O[1] if [i < n/2] continue; while [i < n] { i++; // Do somethings in O[1] } }Nếu không để ý thì có thể sẽ nhầm hàm này là O[N^2], nhưng thực tế độ phức tạp của nó là O[n]. Bởi vì nếu như i < n/2 thì hàm sẽ chỉ lặp 1 lần và không nhảy xuống dưới, còn khi i bằng n/2 thì vòng lặp while bên dưới sẽ lặp cho đến khi i bằng n rồi sau đó sẽ thoát ra khỏi cả 2 vòng lặp, do đó độ phức tạp chỉ là O[n].
2. Sắp xếp và tìm kiếm nhị phân
a. Sắp xếp
Để có thể hiểu rõ các thuật toán chạy như nào, các bạn nên tìm các source code trên mạng về và chạy thử, sau đó tự ngẫm xem các hàm của nó chạy như nào, các phép toán có tác dụng gì. Trong các thuật toán sắp xếp thì mình thấy có rất nhiều thuật toán như:
- Bubble sort
- Selection sort
- Insertion sort
- Quick sort
- Heap sort
- ...
Ngoài ra còn rất nhiều thuật toán sắp xếp khác nữa, tùy vào điều kiện môn học trên trường yêu cầu gì thì mình học theo. Còn theo kinh nghiệm của mình thì để làm bài tập và code thuật toán thì học bubble sort [O[n]] và quick sort[~O[nlog[n]]] thôi là đủ code được cả nghìn bài rồi. Đa số đều sử dụng quick sort hay dùng luôn hàm sort trong thư viện[ Trong C++ là hàm sort trong thư viện algorithm có độ phức tạp ~ O[nlog[n]]].
Còn việc giới thiệu nhiều thuật toán sort là tùy từng điều kiện cụ thể thì từng thuật toán có những ưu điểm và khuyết điểm riêng, ứng dụng trong thực tế. ví dụ như insertion sort hay sắp xếp chèn thường được sử dụng trong bảng xếp hạng,đây là thuật toán sắp xếp xử lý chèn phần tử đang xét vào vị trí thích hợp của dãy số đã sắp xếp phía trước sao cho dãy số vẫn là dãy sắp xếp có thứ tự.
b. Tìm kiếm nhị phân
Ý tưởng chính của tìm kiếm có thể biểu diễn đơn giản bằng một bài toán như sau:
Có n bạn được xếp thành một hàng theo thứ tự chiều cao tăng dần. Thầy giáo nhìn vào danh sách học sinh mà không có tên, chỉ có chiều cao, do đó cần tìm bạn có chiều cao là X trong hàng.
Bình thường thì cách làm đơn giản nhất là duyệt từ đầu hàng đến cuối hàng một cách lần lượt, khi đó chắc chắn sẽ tìm được bạn có chiều cao là X đó [độ phức tạp thuật toán sẽ là O[n]]. Có một cách nhanh hơn để giải bài toán này, đó là ta sẽ nhìn vào người ở giữa dãy, nếu bạn đó có chiều cao bằng X thì ta sẽ tìm được luôn, còn nếu không thì ta sẽ biết chắc chắn người đó sẽ đứng ở nửa nào trong 2 nửa còn lại của hàng, qua đó lặp lại phương pháp trên đến khi tìm ra bạn đó, đây chính là ý tưởng chính của thuật toán tìm kiếm nhị phân với độ phức tạp chỉ còn O[nlog[n]].
3. Các phương pháp sinh
Có thể bạn chưa biết, gần như tất cả các bài toán đều có thể giải bằng cách duyệt trâu từng trường hợp. Do đó các phương pháp sinh là không thể thiếu khi học thuật toán. Có 4 phương pháp sinh mà các bạn nhất định phải học:
- Sinh nhị phân
- Sinh hoán vị
- Sinh tổ hợp
- Sinh chỉnh hợp
Các bạn có thể tìm hiểu các thuật toán trên và submit trong trang sau nhé:
//www.spoj.com/PTIT/problems/basic/
4. Đệ quy, quay lui
Nói đơn giản thì đệ quy là hàm gọi lại chính nó, biểu diễn đối tượng được định nghĩa quy nạp theo các đối tượng con đồng dạng với nó. Sau đây là một số ví dụ của hàm sử dụng vòng lặp bình thường và hàm đệ quy:
int giaithua[int n] { int res=1; for [int i = 1; i --qui-dinh-can-biet.pdf-0.jpg> 1. ctdl> - qui dinh can biet.pdf1. ctdl_gt - qui dinh can biet.pdf
-de-cuong-mon-hoc.pdf/2.-ctdl>-de-cuong-mon-hoc.pdf-0.jpg> 2. ctdl> -đề cương môn học.pdf
2. ctdl_gt -đề cương môn học.pdf
3. chuong 1 - phân tích độ phức tạp_của giải thuật.pdf
4. chuong 2 - các thuật toán sắp xếp.pdf
5. chuong 3 - tìm kiếm tuần tự - tìm kiếm nhị phân.pdf
6. chuong 3 - brute force + kmp - các thuật toán tìm kiếm chuỗi.pdf
7. chuong 3 - thuật toán rabin karp.pdf
8. chuong 4 - các khái niệm cơ bản.pdf
9. chuong 5 - các cấu trúc dữ liệu.pdf
10. chuong 5 - cây nhị phân.pdf
11. chuong 5 - bst + priority queue.pdf
11. chuong 5 - bst + priority queue.pdf
12. chuong 5 - cây avl + hash table.pdf
13. chuong 5 - cây do-den + aa.pdf
14. chuong 5 - b-tree.pdf
15. chuong 6 - các thuật toán nén dữ liệu.pdf
bài giảng lập trình c cơ bản.pdf
ctdl 2005 chuong 1.pdf
ctdl 2005 chuong 2.pdf
ctdl 2005 chuong 3.pdf
ctdl 2005 chuong 4.pdf
ctdl 2005 chuong 5.pdf
ctdl 2005 chuong 6.pdf
ctdl 2005 chuong 7.pdf
ctdl 2005 chuong 8.pdf
ctdl 2005 chuong 9.pdf
ctdl 2005 chuong 10.pdf
ctdl 2005 chuong 11.pdf
ctdl 2005 chuong 12.pdf
ctdl 2005 chuong 13.pdf
ctdl 2005 chuong 14.pdf
ctdl 2005 chuong 15.pdf
ctdl 2005 chuong 16.pdf
ctdl 2005 chuong 17.pdf
ctdl 2005 chuong 18.pdf
cấu trúc dữ liệu.pdf
it2hut.net.giao trinh ly thuyet ctdl_-_nhtera.pdf
mucluc.pdf
cau_truc_du_lieu_va_giai_thuat.pdf
bai1_giới thiệu môn học.pdf
bai2_một số phương pháp sắp xếp.pdf
bai3_bảng băm [hash table].pdf
bai4_cây, cây nhị phân, cây nhị phân tìm kiếm.pdf
bai5_cây cân bằng.pdf
bai6_cây đỏ đen.pdf
bai7_cây 2-3-4.pdf
chap07graph.pdf
chap07 graph.pdf
chuong1_cackhainiemcoban2.pdf
chuong1_các khái niệm cơ bản.pdf
chuong2.các thuật toán đệ quy.pdf
chuong3 các cấu trúc dữ liệu cơ bản.pdf
chuong4 cây.pdf
chuong5 các thuật toán sắp xếp.pdf
chuong6 tìm kiếm.pdf
chuong7 graph.pdf
w01a_courseintro.pdf
w01b_gettingstarted.pdf
w02_analysis.pdf
w02_analysis.pdf
w03_adt.pdf
w04_adt_list_dynamic_array.pdf
w04_adt_list_linkedlist.pdf
w06_adt_queue.pdf
w06_adt_stack.pdf
w07_adt_tree.pdf
w09_hashing.pdf
w09_hashing.pdf
w10_priority_queue.pdf
w12_sorting.pdf
w12_sorting.pdf
w14_graph1.pdf
w14_graph1.pdf
w15_graph2.pdf
bài tập cấu trúc dữ liệu và giải thuật.pdf
ctdl-lab01-on_tap.pdf
ctdl-lab02-danh_sach_lien_ket.pdf
ctdl-lab03-stack_va_queue.pdf
ctdl-lab04-cay_nhi_phan_tim_kiem.pdf
ctdl-lab05-cay_can_bang-avl.pdf
ctdl-lab06-nen_huffman.pdf
ctdl-lab07-cac_thuat_toan_sap_xep.pdf
ctdl-lab08-tim_kiem.pdf
ctdl-lab09-bang_bam.pdf
ctdl-lab10-string_matching.pdf
[biboo.vn] - 14 đề thi thực hành ctdl_gt.pdf
[biboo.vn] - dethuchanh_01[1].jpg
[biboo.vn] - dethuchanh_01.jpg
[biboo.vn] - dethuchanh_01.jpg
[biboo.vn] - dethuchanh_02[1].jpg
[biboo.vn] - dethuchanh_02.jpg
[biboo.vn] - dethuchanh_02.jpg
bai tap bang bam.pdf
bai tap bang bam.pdf
bai tap b tree.pdf
bai tap b tree.pdf
bai tap cay_cay nhi phan tim kiem_cay nhi phan can bang.pdf
bai tap chuong tong quan.pdf
bai tap chuong tong quan.pdf
bai tap danh sach lien ket.pdf
bai tap danh sach lien ket.pdf
bai tap hang doi_ngan xep.pdf
bai tap tim kiem_sap xep.pdf
bth5.pdf
bth7.pdf
buổi 9.pdf
bài thực hành 4.pdf
bài thực hành buổi 3.pdf
ctdl2.pdf
de1.pdf
de1.pdf
de2.pdf
dsal.zip
th31[source][1].zip
th31[source].zip
th31[source].zip
th31.pdf
assignment1.pdf
assignment1.pdf
lab+1+-+cc+++primer.pdf
lab+1+-+cc+++primer.pdf
lab+2+-+linked+list+-+solution.pdf
lab+2+-+linked+list+-+solution.pdf
lab+2+-+linked+list.pdf
lab+2+-+linked+list.pdf
lab+3+-+binary+tree+-+solution.pdf
lab+3+-+binary+tree+-+solution.pdf
lab+4+-+binary+search+tree+-+solution.pdf
lab+4+-+binary+search+tree+-+solution.pdf
lab+5+-+sorting+_+heap+-+solution.pdf
lab+5+-+sorting+_+heap+-+solution.pdf
lab+5+-+sorting+_+heap.pdf
lab+5+-+sorting+_+heap.pdf
lab3_binarytree.pdf
lab3_binarytree.pdf
lab4.pdf
lab4.pdf
tut+2_v1.1.pdf
tut+2_v1.1.pdf
tut+3-1.pdf
tut+3-1.pdf
tut+3.pdf
tut+3.pdf
tutorial+1+-+c+primer+-+solution.pdf
tutorial+1+-+c+primer+-+solution.pdf
tutorial+1.pdf
tutorial+1.pdf
tutorial+2+-+linked+list+-+solution.pdf
tutorial+2+-+linked+list+-+solution.pdf
tutorial+3+-+stack+and+queue+-+solution.pdf
tutorial+3+-+stack+and+queue+-+solution.pdf
tutorial+4+-+bst+avl+-+solution.pdf
tutorial+4+-+bst+avl+-+solution.pdf
tutorial+4+-+bst+avl.pdf
tutorial+4+-+bst+avl.pdf
tutorial+5+-+sorting+-+solution.pdf
tutorial+5+-+sorting+-+solution.pdf
tutorial+5+-+sorting.pdf
tutorial+5+-+sorting.pdf
tutorial+6+-+hashing+_+multiwaytree.pdf
tutorial+6+-+hashing+_+multiwaytree.pdf
tutorial+6+-+hashing+and+multi-way+tree+-+solution.pdf
tutorial+6+-+hashing+and+multi-way+tree+-+solution.pdf
exercise.chapter.1.1.pdf
exercise.chapter.1.1.pdf
exercise.chapter.1.2.pdf
exercise.chapter.1.2.pdf
exercise.chapter.1.3.pdf
exercise.chapter.1.3.pdf
exercise.chapter2.1.pdf
exercise.chapter3.tree.pdf
exercise.chapter4.searching.[basic].pdf
exercise.chapter4.searching.[basic].pdf
exercise.chapter5.function.pdf
exercise.chapter5.sorting.pdf
exercise.chapter6.advanced.searching.pdf
exercise.chapter7.graph.pdf
exercise.chapter7.pdf
02_tut1_complexity.pdf
02_tut1_complexity.pdf
02_tut1_solution.pdf
03_lab1_solution-new.pdf
03_lab1_v3.pdf
03_lab1_v3.pdf
04_tut2_linkedliststack.pdf
04_tut2_linkedliststack.pdf
04_tut2_solution.pdf
05_lab2_solution-new.pdf
05_lab2_solution-new.pdf
06_tut3_queuerecursion.pdf
06_tut3_queuerecursion.pdf
06_tut3_queuerecursion_solution.pdf
06_tut3_queuerecursion_solution.pdf
10_tut5_graph.pdf
10_tut5_graph.pdf
14_tut6_sorting.pdf
assignment+2_log-1.pdf
assignment+2_log-1.pdf
assignment+2_log.pdf
assignment+2_log.pdf
assignment+3_log.pdf
assignment+3_log.pdf
assignment2_v1.1.pdf
assignment2_v1.1.pdf
assignment2_v1.2.pdf
assignment2_v1.2.pdf
assignment3_v1.1.pdf
lab2.pdf
lab2.pdf
lab3-solution.pdf
lab3-solution.pdf
lab3_v2.pdf
lab4.pdf
lab4.pdf
lab5.pdf
lab5.pdf
lab6.pdf
lab6.pdf
listsample.cpp
listsample.cpp
sol exer 6 - week 14.pdf
sol lab 4 - week 11.pdf
sol lab 5 - week 13.pdf
sol lab 5 - week 13.pdf
solution_tut_5.pdf
solution_tut_5.pdf
tut4-solution.pdf
tut4-solution.pdf
tut4.pdf
tut4.pdf
bài tập cấu trúc dữ liệu và giải thuật.docx
bài tập cấu trúc dữ liệu và giải thuật.pdf
code.zip
6.phuongphapchiadetri.pdf
b1.pdf
bai tap cay nhi phan.pdf
balan nguoc.pdf
ctdl-lab01-on_tap.pdf
ctdl.pdf
de th.pdf
hdth buoi 2.pdf
rpn.pdf
[bai tap] danh sách.pdf
[bai tap c4] cay _ cay nhi phan tim kiem - ver 3.pdf
[bai tap chuong 5-6]bảng băm - cây b-tree .pdf
baitapdequi.pdf
bt04-sol.pdf
btl-chuong4.pdf
[huong dan] nmlt_cài đặt tham số dòng lệnh_trên visual c++ 6.0.pdf
[huong dan] thuật toán balan ngược reverse polish notation.pdf
[huong dan] thuật toán tính giá trị biểu thức postfix.pdf
[paper] aa - balanced search trees made simple.pdf
[paper] aa - balanced search trees made simple.pdf
bài tập ôn r-1.pdf
bài tập ôn r-2.pdf
bài tập ôn r-3.pdf
homework 1_tính độ phức tạp f[n] của các giải thuật.pdf
homework 2_cài đặt giải thuật sắp xếp selection sort, heap sort để sắp xếp một mảng số nguyên theo_thứ tự tăng dần.pdf
homework 3_giải thuật brute-force.pdf
homework 5.1_danh sách liên kết.pdf
homework 5.1_danh sách liên kết.pdf
homework 5.2_ngăn xếp, hàng đợi.pdf
homework 5.2_ngăn xếp, hàng đợi.pdf
homework 5.3_cây nhị phân tìm kiếm, priority queue.pdf
homework 5.3_cây nhị phân tìm kiếm, priority queue.pdf
homework 5.4_cây avl, cây đỏ-đen, cây aa.pdf
homework 5.4_cây avl, cây đỏ-đen, cây aa.pdf
homework 5.5_b-tree.pdf
homework 5.5_b-tree.pdf
homework 6_run-length encoding, nén huffman tĩnh.pdf
exercises.pdf
lab1vn.pdf
lab2vn.pdf
lab3.pdf
lab4.pdf
lab5.pdf
lab5.pdf
lab6.pdf
lab7.pdf
lab7.pdf
lab8.pdf
lab9_hashing.pdf
lab9_hashing.pdf
lab10_priority_queue.pdf
lab10_priority_queue.pdf
lab11_strategy.pdf
lab12_sorting.pdf
lab12_sorting.pdf
lab13_graph.pdf
midterm_sample.pdf
dsa.exam.20132.01.pdf
dsa.exam.20132.01.pdf
dsa.final.03_reexam.pdf
dsa.test01.pdf
dsa.test02.pdf
solution.chap.3.docx
solution.chap.3.pdf
solution.dsa.test.01.10.12.2010.pdf
solution.dsa.test.01.10.12.2010.pdf
solution.dsa.test.02.10.12.2010.pdf
solution.dsa.test.02.10.12.2010.pdf
solution.dsa.test01.pdf
solution.dsa.test02.pdf
đề thi cấu trúc dữ liệu giải thuật bách khoa hà nội 2019.jpg
[bht cnpm] ctdl_gt ck 2017-2018 hk2[1].jpg
[bht cnpm] ctdl_gt ck 2017-2018 hk2 [1] cntn[1].jpg
[bht cnpm] ctdl_gt ck 2017-2018 hk2 [1] cntn.jpg
[bht cnpm] ctdl_gt ck 2017-2018 hk2 [1] cntn.jpg
[bht cnpm] ctdl_gt ck 2017-2018 hk2 [2] cntn[1].jpg
[bht cnpm] ctdl_gt ck 2017-2018 hk2 [2] cntn.jpg
[bht cnpm] ctdl_gt ck 2017-2018 hk2 [2] cntn.jpg
[bht cnpm] ctdl_gt ck 2017-2018 hk2.jpg
[bht cnpm] ctdl_gt ck 2017-2018 hk2.jpg
[bht cnpm] ctdl_gt ck hk2 2017-2018[1].jpg
[bht cnpm] ctdl_gt ck hk2 2017-2018.jpg
[bht cnpm] ctdl_gt ck hk2 2017-2018.jpg
[bht cnpm] ctdl_gt gk_2017-2018 -hk2[1].jpg
[bht cnpm] ctdl_gt gk_2017-2018 -hk2.jpg
[bht cnpm] ctdl_gt gk_2017-2018 -hk2.jpg
[bht cnpm] ctdl_gt gk_hk2_2018-2019[1].jpg
[bht cnpm] ctdl_gt gk_hk2_2018-2019.jpg
[bht cnpm] ctdl_gt gk_hk2_2018-2019.jpg
de thi 1.1.jpg
de thi 1.1.jpg
de thi 1.2[1].jpg
de thi 1.2.jpg
de thi 1.2.jpg
de thi 1.3[1].jpg
de thi 1.3.jpg
de thi 1.3.jpg
de thi 1.4[1].jpg
de thi 1.4.jpg
de thi 1.4.jpg
received_687975484983309.jpeg
received_687975484983309.jpeg
received_2048064865487189.jpeg
received_2048064865487189.jpeg
đề ck1.jpg
đề ctdl 1.1.jpg
đề ctdl 1.2 [1].jpg
đề ctdl 1.2 [2].jpg
đề ctdl 1.2.jpg
đề ctdl 2.jpg
kiểm tra giữa kỳ 2012-2013.pdf
kiểm tra giữa kỳ 2012-2013_solution.pdf
đề kiểm tra giữa học kỳ 1 2010 – 2011 +solution.pdf
đề kiểm tra giữa học kỳ 1 2010 – 2011.pdf
đề kiểm tra giữa học kỳ 1 2011 – 2012+ solution.pdf
đề kiểm tra giữa học kỳ 1 2011 – 2012.pdf
đề thi cuối học kỳ 1 2012 – 2013_datastructure_241112_updated.pdf
đề thi giữa kỳ hk1 2009 +solution.pdf
đề thi giữa kỳ hk1 2009.pdf
img_0456.jpg
img_0458.jpg
img_0459.jpg
img_0460.jpg
ctdl _ gt 14 - 15.pdf
ctdl _ gt 15 - 16.pdf
ctdl _ gt 16 - 17.pdf
ctdl _ gt 16 - 17 cntn.pdf
ctdl _ gt 17 - 18 clc.pdf
ctdl _ gt 17 - 18 cntn.pdf
ctdl hk1 2011-2012.pdf
khtn_ctdl _ gt 14 - 15.pdf
khtn_ctdl _ gt 15 - 16.pdf
khtn_ctdl _ gt 16 - 17.pdf
khtn_ctdl _ gt 16 - 17 cntn.pdf
khtn_ctdl _ gt 17 - 18 clc.pdf
khtn_ctdl _ gt 17 - 18 cntn.pdf
khtn_ctdl_gt_2009.pdf
khtn_ctdl_gt_2011-2012.pdf
14 đề thi thực hành ctdl+gt.doc
14 đề thi thực hành ctdl+gt.pdf
dsa 1.pdf
dsa k52.pdf
dsa k53.pdf
dsa k56 - co diep.pdf
gk dsa k57 - co diep.pdf
hk1 2018-2019.jpg
hk1 2018-2019_p2.jpg
int2203 cuoi ky dap an 1213sem1.pdf
đề cuối kỳ 2017.jpg
đề cuối kỳ 2017_2.jpg
ctdl-bai tap on.pdf
ctdl _ gt 15-16 cntn [1].jpg
ctdl _ gt 15-16 cntn [2].jpg
cấu trúc dữ liệu và giải thuật _ gt 14 - 15 cử nhân tài năng [1].jpg
cấu trúc dữ liệu và giải thuật _ gt 14 - 15 cử nhân tài năng [2].jpg
cấu trúc dữ liệu và giải thuật _ gt 16-17 [1].jpg
cấu trúc dữ liệu và giải thuật _ gt 16-17 [2].jpg
cấu trúc dữ liệu và giải thuật _ gt 16 - 17 cử nhân tài năng [1].jpg
cấu trúc dữ liệu và giải thuật _ gt 16 - 17 cử nhân tài năng [2].jpg
cấu trúc dữ liệu và giải thuật _ gt 17-18 chất lượng cao [1].jpg
cấu trúc dữ liệu và giải thuật _ gt 17-18 chất lượng cao [2].jpg
cấu trúc dữ liệu và giải thuật _ gt 17-18 cử nhân tài năng [1].jpg
cấu trúc dữ liệu và giải thuật _ gt 17-18 cử nhân tài năng [2].jpg
Cấu Trúc Cây - Cấu Trúc Dữ Liệu Và Giải Thuật - Hcmus 2011
Source Code Các Cấu Trúc Dữ Liệu Và Giải Thuật Được Cài Đặt Bằng Rất Nhiều Ngôn Ngữ Java, Php, C, C++, Javascript, Python, Go,...
Phân Tích Thuật Toán, Tính Hiệu Quả Của Thuật Toán, Ký Hiệu Ô Lớn Và Biểu Diễn Thời Gian Chạy Bởi Ký Hiệu Ô Lớn
Cây Tìm Kiếm Nhị Phân
Bảng Băm, Phương Pháp Băm, Hàm Băm, Cài Đặt Bảng Băm
Cài Đặt Thuật Toán Nén Huffman Bằng Ngôn Ngữ C++
Cài Đặt Thuật Toán Quicksort Bằng Ngôn Ngữ C++
Cây Đỏ Đen
Cây, Cây Nhị Phân, Cây Nhị Phân Tìm Kiếm [1]
Cấu Trúc Dữ Liệu Cây 2-3-4
Cấu Trúc Dữ Liệu Cây Cân Bằng
Thuật Toán Sắp Xếp Sắp Xếp Cây - Heap Sort
Thuật Toán Sắp Xếp Radix Sort
Thuật Toán Sắp Xếp Nhanh - Quick Sort
Bài 3 Bảng Băm [Hash Table]
Danh Sách Liên Kết
Cấu Trúc Mảng [Arrays]
Danh Sách Móc Nối - Danh Sách Liên Kết
Cấu Trúc Danh Sách
Các Khái Niệm Cơ Bản Về Ctdl Và Giải Thuật
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 25
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 24
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 23
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 22
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 21
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 20
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 19
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 18
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 17
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 16
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 15
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 14
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 13
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 12
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu & Giải Thuật Đề Số 11
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu Và Giải Thuật Đề Số 10
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu Và Giải Thuật Đề Số 09
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu Và Giải Thuật Đề Số 08
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu Và Giải Thuật Đề Số 07
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu Và Giải Thuật Đề Số 06
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu Và Giải Thuật Đề Số 05
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu Và Giải Thuật Đề Số 04
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu Và Giải Thuật Đề Số 03
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu Và Giải Thuật Đề Số 02
Đề Thi Hết Học Phần - Môn Cấu Trúc Dữ Liệu Và Giải Thuật Đề Số 01
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 30
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 29
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 28
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 27
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 26
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 25
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 24
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 23
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 22
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 21
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 20
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 19
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 18
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 17
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 16
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 15
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 14
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 12
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 11
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 10
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 9
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 8
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 7
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 6
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 5
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 4
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 3
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 2
Đề Cấu Trúc Dữ Liệu Và Giải Thuật Có Đáp Án Cài Đặt Bằng Ngôn Ngữ C - Đề Số 1
Tìm Đường Đi Ngắn Nhất Trên Đồ Thị Bằng Ngôn Ngữ C- Thuật Toán Dijkstra
Cài Đặt Danh Sách Kề Biểu Diễn Đồ Thị Đơn, Đồ Thị Vô Hướng Bằng Ngôn Ngữ C
Cài Đặt Ma Trận Kề Biểu Diễn Đồ Thị, Duyệt Theo Chiều Sau, Chiều Rộng Ngôn Ngữ C
Bài Toán Dãy Con Lớn Nhất Ngôn Ngữ C
Chương 6 Đồ Thị
Phương Pháp Chia Để Trị
Phương Pháp Tham Lam [Greedy]
Sắp Xếp Chèn
Bảng Băm
Chapter 2 Các Cấu Trúc Dữ Liệu Cơ Bản
Phân Tích Thuật Toán
Phần I – Giới Thiệu Về Thuật Toán
2.6 Queue – Hàng Đợi
2.5 Ngăn Xếp ‐ Stack
Chương 3 Cây ‐ Tree
Đồ Thị
Cây, Cây Nhị Phân, Cây Nhị Phân Tìm Kiếm
Cài Đặt Cấu Trúc Dữ Liệu Cây Nhị Phân Bằng Ngôn Ngữ C++ Binarytree.Cpp
Cài Đặt Cấu Trúc Dữ Liệu Danh Sách Liên Kết Đơn Bằng Ngôn Ngữ C++ Singly_Linked_List.Cpp
Cài Đặt Cấu Trúc Dữ Liệu Hàng Đợi Bằng Ngôn Ngữ C++ Queue.Cpp
Cài Đặt Cây Nhị Phân Tìm Kiếm Bằng Ngôn Ngữ C++ Binarysearchtree.Cpp
Các Phương Pháp Tìm Kiếm Heuristic
Thuật Giải Heuristic
Đề Kiểm Tra Giữa Học Kỳ 1 Môn Cấu Trúc Dữ Liệu Và Giải Thuật - Năm Học 2009 Đại Học Bách Khoa Hcm
Đề Kiểm Tra Giữa Học Kỳ 1 Môn Cấu Trúc Dữ Liệu Và Giải Thuật - Năm Học 2011– 2012 Đại Học Bách Khoa Hcm
Đề Kiểm Tra Giữa Học Kỳ 1 Môn Cấu Trúc Dữ Liệu Và Giải Thuật - Năm Học 2010 – 2011 Đại Học Bách Khoa Hcm
Giới Thiệu Phân Tích Thuật Toán
Hàng Đợi Ưu Tiên
Cây Nhị Phân Tìm Kiếm
Cấu Trúc Dữ Liệu Cây
B-Tree [1]
M-Way Tree - Cây M-Nhánh
Cây Avl
B-Tree
Cây Aa - Aa Tree
Cây Đỏ Đen - Red Black Tree
Bảng Băm – Hash Table
Cây Nhị Phân Tìm Kiếm Cân Bằng - Avl
Hàng Đợi Ưu Tiên – Priority Queue
Cây Nhị Phân Tìm Kiếm – Binary Search Tree
Vai Trò Của Cấu Trúc Dữ Liệu
Đề Thi Thực Hành Môn Cấu Trúc Dữ Liệu Khoa Khoa Học Máy Tính Uit
Đề Thi Môn: Cấu Trúc Dữ Liệu Và Giải Thuật Mã Đề Cd 2011 - 01 Trường Đại Học Bách Khoa Hà Nội
Đề Thi Giữa Kì Cấu Trúc Dữ Liệu Và Giải Thuật Lớp Môn Học: Int2203 Học Kỳ I, Năm Học 2012, 2013 - Trường Đại Học Công Nghệ
Đề Thi Cuối Kì Cấu Trúc Dữ Liệu Và Giải Thuật Lớp Môn Học: Int2203 1,3 Học Kỳ I, Năm Học 2012, 2013 - Trường Đại Học Công Nghệ
Đề Thi Cuối Kì Cấu Trúc Dữ Liệu Và Giải Thuật Học Kì Ii, 2009-2010 Lớp K53cb, K53cc - Trường Đại Học Công Nghệ
Đề Thi Cuối Kì Cấu Trúc Dữ Liệu Và Giải Thuật Học Kì I, 2009-2010 Lớp K52ca, Cb, Cc - Trường Đại Học Công Nghệ
Thuật Toán Và Độ Phức Tạp Của Thuật Toán
Cấu Trúc Dữ Liệu Và Giải Thuật - Đh Cần Thơ
Cấu Trúc Dữ Liệu & Giải Thuật [Data Structures And Algorithms] Các Cấu Trúc Dữ Liệu Nguyễn Tri Tuấn Khoa Cntt – Đh.Khtn.Tp.Hcm
Data Structures & Algorithms - Red Black + Aa Tree Cây Cân Bằng Red Black Và Aa Nguyen Tri Tuan, Dh.Khtn Tp.Hcm
Các Thuật Toán Sắp Xếp [Sorting Algorithms] Nguyễn Tri Tuấn Khoa Cntt – Đh.Khtn.Tp.Hcm
Đề Cương Môn Học Ctt101 Cấu Trúc Dữ Liệu Và Giải Thuật Trường Đại Học Khoa Học Tự Nhiên
Cấu Trúc Dữ Liệu Và Giải Thuật - Chương I: Các Kiến Thức Cơ Bản
các bạn tự tìm sách trên google theo gợi ý bên dưới nhé!
Algorithms - Robert Sedgewick And Kevin Wayne.Pdf
Algorithms In C - R.Sedgewick.Pdf
Co2003_Cautrucdulieuvagiaithuat.Pdf
Ctdl-Gt Bưu Chính Viễn Thông.Pdf
Ctdl-Gt Đh Cần Thơ.Pdf
Competitive Programmer’s Handbook.Pdf
Cấu Trúc Dữ Liệu - Lê Minh Hoàng.Pdf
Cấu Trúc Dữ Liệu Tiếng Việt [1].Pdf
Cấu Trúc Dữ Liệu Tiếng Việt [2].Pdf
Cấu Trúc Dữ Liệu Và Thuật Toán - Nguyễn Đức Nghĩa - Đh Bách Khoa Hà Nội.Pdf
Data Structures And Algorithms Made Easy - Data Structures And Algorithmic Puzzles.Pdf
Data Structures And Algorithms In C++ A. Drozdek.Pdf
Data Structures And Algorithms In Java.Pdf
Data Structures And Algorithms In Python.Pdf
Data Structures And Algorithms With Python.Pdf
Data Structures And Program Design In C++ - Robert L. Kruse.Pdf
Giải Thuật Và Lập Trình - Lê Minh Hoàng.Pdf
Introduction To Algorithms, Third Edition.Pdf
Introduction To Algorithm Tiếng Việt.Pdf
Thuật Toán Nâng Cao - Nguyễn Thanh Bình - Bk Đà Nẵng.Pdf
Cấu Trúc Dữ Liệu Và Giải Thuật Dương Anh Đức, Nguyễn Hạnh Nhi.Pdf
Cấu Trúc Dữ Liệu Và Giải Thuật Đỗ Xuân Lôi.Pdf
Cầm Nang Thuật Toán Vol1.Pdf
Cầm Nang Thuật Toán Vol2.Pdf
Giải Thuật Và Lập Trình Lê Minh Hoàng.Pdf
Tài Liệu Giáo Khoa Chuyên Tin_Quyen_1.Pdf
Tài Liệu Giáo Khoa Chuyên Tin_Quyen_2.Pdf
Tài Liệu Giáo Khoa Chuyên Tin_Quyen_3_Tap_1.Pdf
Tài Liệu Giáo Khoa Chuyên Tin_Quyen_3_Tap_2.Pdf
Đinh Mạnh Tường Đh Công Nghệ Đhqg Hn.Pdf