Cấu trúc dữ liệu và giải thuật
GIỚI THIỆU
Giảng viên:
Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến
Nội dung
2
Thông tin môn học
Quy định môn học
Tài liệu tham khảo
Nội dung môn học
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Nghỉ Thi Giữa Kỳ:
tuần 31/10/2011
• Chiều thứ 4 hàng tuần
• Bắt đầu từ 19/09/2011
• Văn Chí Nam ()
• Giờ học: t1-t4 sáng T4 hàng tuần
• Địa điểm: F104
Thực hành:
Lý thuyết:
3
Thơng tin môn học – Giáo viên
Trang web môn học
4
/>
Sử dụng cho các việc:
Đặt câu hỏi
Giải đáp thắc mắc
Nhận thông báo
Nhận/nộp bài tập
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Quy định điểm số
5
Điểm lý thuyết cuối kỳ: 50%
Điểm thực hành giữa kỳ: 10%
Điểm thực hành cuối kỳ: 20%
Bài tập về nhà, điểm hoạt động nhóm: 20%
Seminar: 25%
Bất kỳ trường hợp gian lận nào bị phát hiện trong quá
trình học, thi, bài tập,… sẽ bị phạt theo qui định sau:
Lần 1: trừ 30% trên tổng số điểm của môn học.
Lần 2: trừ 50% trên tổng số điểm của môn học.
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Thơng tin mơn học – Giờ học Lý thuyết
6
KHƠNG bắt buộc phải có mặt. Nếu đi học, phải
đi học đúng giờ và nghiêm túc.
Có thể có các bài kiểm tra nhỏ với nội dung của
phần học có liên quan.
Có thể có điểm trừ cho việc chuẩn bị bài, làm
bài khơng tốt.
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Thông tin môn học – Giờ học thực hành
7
Ngôn ngữ lập trình: C/C++
Cơng cụ lập trình: Visual C++ 6 hoặc Visual
Studio 2005, 2008, 2010 (chế độ console).
Chương trình viết phải ngăn nắp, thẳng hàng,
ghi chú đầy đủ. Đặt tên biến và tên hàm phải
gợi nhớ, có qui ước xác định.
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Tài liệu tham khảo
8
Adam Drozdek (2001), Data structures and
Algorithms in C++ (Second Edition)
Dương Anh Đức – Trần Hạnh Nhi (2003), Nhập môn
Cấu trúc dữ liệu và giải thuật, NXB ĐHQG TP.HCM
Đinh Mạnh Tường (2008), Cấu trúc dữ liệu và thuật
toán, NXB ĐHQG HN.
Đỗ Xuân Lôi (2007), Cấu trúc dữ liệu và giải thuật,
NXB ĐHQG HN.
Thomas H. Cormen, Charles E. Leiserson, Ronald L.
Rivest and Clifford Stein (2001), Introduction to
Algorithms (Second Edition)
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Nội dung mơn học
9
1.
2.
3.
4.
5.
Các khái niệm cơ bản
Các thuật tốn sắp xếp
Các thuật tốn tìm kiếm
Các cấu trúc dữ liệu
Các thuật toán nén
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Nội dung mơn học
10
Cái khái niệm cơ bản
• Kiểu dữ liệu: cơ bản, có cấu trúc, trừu tượng
• Đánh giá thuật tốn
• Ơn tập: Con trỏ, Đệ qui
Các thuật tốn sắp xếp
• Selection Sort, Heap Sort, Merge Sort, Quick Sort, Radix
Sort
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Nội dung mơn học
11
Các thuật tốn tìm kiếm
• Tìm kiếm tuần tự
• Tìm kiếm nhị phân
• Tìm kiếm chuỗi: Brute Force, Rabin Karp, KMP
Các cấu trúc dữ liệu
•
•
•
•
Danh sách liên kết, Stack – Queue, Hàng đợi ưu tiên
Cấu trúc cây: nhị phân tìm kiếm, AVL, AA,..
B-cây
Bảng băm
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Nội dung mơn học
12
Các thuật tốn nén dữ liệu:
• Nén Run-Length Encoding
• Nén Huffman tĩnh
• Nén LZW
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Giới thiệu
13
Mục đích mơn học
Ngơn ngữ lập trình
Thuật tốn
Biểu diễn thuật toán
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Mục đích mơn học
14
Học mơn này để làm gì?
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Ngơn ngữ lập trình
15
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Ngơn ngữ lập trình
16
George Boole
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Ngơn ngữ lập trình
17
Alan Turing
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Ngơn ngữ lập trình
18
Von Neumann
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Thế nào là thuật toán?
19
An algorithm is a sequence of steps
required to accomplish a task
(Al-Khwārizmī).
Thuật toán là tập hợp hữu hạn các lệnh
chính xác để thực hiện tính tốn hoặc để
giải một bài toán (Rosen)
Al-Khwārizmī
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Thuật toán – Các giai đoạn thực
hiện
20
Nhập
dữ liệu
Xử lý
Cấu trúc dữ liệu và giải thuật - HCMUS 2011
Xuất
dữ liệu