Cấu trúc dữ liệu và thuật toán (Chương 1) - NGUYỄN ĐỨC NGHĨA
Bài giảng giới thiệu về các kiến thức cơ bản trong Cấu trúc dữ liệu và thuật toán, bao gồm ví dụ mở đầu về bài toán tìm dãy con có trọng lượng lớn nhất, phân tích các thuật toán trực tiếp, thuật toán nhanh hơn và giới thiệu thuật toán đệ quy theo phương pháp chia để trị.
正在生成预览...
CẤU TRÚC DỮ LIỆU VÀ THUẬT TOÁN Data Structures and Algorithms Bài giảng của PGS.TS. NGUYỄN ĐỨC NGHĨA Khoa học Máy tính Đại học Bách khoa Hà nội Chương 1 CÁC KIẾN THỨC CƠ BẢN Cấu trúc dữ liệu và thuật toán - KHMT - DHBKHN NỘI DUNG 1.1. Ví dụ mở đầu 1.2. Thuật toán và độ phức tạp 1.3. Ký hiệu tiệm cận 1.4. Giả ngôn ngữ 1.5. Một số kĩ thuật phân tích thuật toán Cấu trúc dữ liệu và thuật toán - KHMT - DHBKHN Ví dụ mở đầu Bài toán tìm dãy con lớn nhất: Cho dãy số a1, a2, … , an Dãy số ai, ai+1 , …, aj với 1 ≤ i ≤ j ≤ n được gọi là dãy con của dãy đã cho và ∑jk=i ak được gọi là trọng lượng của dãy con này Bài toán đặt ra là: Hãy tìm trọng lượng lớn nhất của các dãy con, tức là tìm cực đại giá trị ∑jk=i ak. Để đơn giản ta gọi dãy con có trọng lượng lớn nhất là dãy con lớn nhất. Ví dụ: Nếu dãy đã cho là -2, 11, -4, 13, -5, 2 thì cần đưa ra câu trả lời là 20 (là trọng lượng của dãy con 11, -4, 13) Cấu trúc dữ liệu và thuật toán - KHMT - DHBKHN Thuật toán trực tiếp Thuật toán đơn giản đầu tiên có thể nghĩ để giải bài toán đặt ra là: Duyệt tất cả các dãy con có thể ai, ai+1 , …, aj với 1 ≤ i ≤ j ≤ n và tính tổng của mỗi dãy con để tìm ra trọng lượng lớn nhất. Trước hết nhận thấy rằng, tổng số các dãy con có thể của dãy đã cho là C(n,2) + n = n2/2 + n/2 . Cấu trúc dữ liệu và thuật toán - KHMT - DHBKHN Thuật toán trực tiếp Thuật toán này có thể cài đặt trong đoạn chương trình sau: int maxSum = 0; for (int i=0; i<n; i++) { for (int j=i; j<n; j++) { int sum = 0; for (int k=i; k<=j; k++) sum += a[k]; if sum > maxSum maxSum = sum; } } Cấu trúc dữ liệu và thuật toán - KHMT - DHBKHN Thuật toán trực tiếp Phân tích thuật toán: Ta sẽ tính số lượng phép cộng mà thuật toán phải thực hiện, tức là đếm xem dòng lệnh Sum += a[k] phải thực hiện bao nhiêu lần. Số lượng phép cộng sẽ là n 1 n 1 n 1 n 1 (n i)( n i 1) 2 i 0 ( j i 1) (1 2 ... (n i)) i 0 j i i 0 1 n 1 n 2 n 1 n(n 1)(2n 1) n(n 1) k (k 1) k
… 下载原始文件以阅读完整文档。
- 文档名称
- Cấu trúc dữ liệu và thuật toán (Chương 1) - NGUYỄN ĐỨC NGHĨA
- 学校 / 课程
- Đại học Bách khoa Hà Nội · Cấu trúc dữ liệu và giải thuật
- 内容
- Tài liệu trình bày các kiến thức cơ bản về cấu trúc dữ liệu và thuật toán, bắt đầu bằng bài toán tìm dãy con lớn nhất và phân tích các phương pháp giải khác nhau, bao gồm thuật toán trực tiếp, thuật toán nhanh hơn và thuật toán đệ quy.
- 目录
- 1.1. Ví dụ mở đầu
- 1.2. Thuật toán và độ phức tạp
- 1.3. Ký hiệu tiệm cận
- 1.4. Giả ngôn ngữ
- 1.5. Một số kĩ thuật phân tích thuật toán
- 页数
- 62 页
- 上传者
- Giang Le
常见问题
此文档免费吗?
是的。“Cấu trúc dữ liệu và thuật toán (Chương 1) - NGUYỄN ĐỨC NGHĨA”是免费的 — 只需登录并点击“下载”即可获取原始文件。
这份文档有多少页?
该文档共有 62 页,适用于课程 Cấu trúc dữ liệu và giải thuật。您可以在下载前进行在线预览。
我可以在下载前预览吗?
是的。您可以通过在线阅读器直接在本页面预览此文档,然后再决定是否下载。

评论 (0)
暂无评论。快来抢沙发吧!