Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
522,9 KB
Nội dung
Số tín chỉ: (3+1) GV: Võ Thị Diễm Hương Giáo trình: Nhập mơn CTDL GT – Th.S Trần Hạnh Nhi, Th.S Dương Anh Đức – ĐH KHTN Mục tiêu mơn học • Cung cấp tảng kiến thức đầy đủ chọn lọc về: ▫ Cái khái niệm ▫ Các thuật tốn sở • Sinh viên tự tìm hiểu xây dựng chương trình ứng dụng ▫ Sinh viên biết chọn lựa cấu trúc liệu phù hợp với yêu cầu ▫ Xây dựng thuật toán phù hợp với toán thực tế ▫ Tiết kiệm chi phí, tài nguyên… Cách đánh giá • Nhóm: 15% (Báo cáo theo u cầu GV nêu cụ thể trình học) • GK: 15% (Kiểm tra thực hành theo yêu cầu cho trước GV & vấn đáp) • Thi kết thúc mơn: 70% (Tự luận: viết code thuật tốn vận dụng thuật tốn để làm tập) • Chuyên cần: vắng >20% số buổi bị cấm thi Nội dung chương trình • Chương 1: TỔNG QUAN VỀ GIẢI THUẬT VÀ CẤU TRÚC DỮ LIỆU (5) • Chương 2: TÌM KIẾM VÀ SẮP XẾP (Báo cáo nhóm 15-10) • Chương 3: DANH SÁCH LIÊN KẾT (10-10) • Chương 4: HÀNG ĐỢI VÀ NGĂN XẾP (5-5) • Chương 5: CÂY NHỊ PHÂN (10-5) Chương TỔNG QUAN VỀ GIẢI THUẬT VÀ CẤU TRÚC DỮ LIỆU (Số tiết: 05; LT: 05; TH: 0) 1.1 Vai trò Cấu trúc liệu đề án tin học 1.2 Các tiêu chuẩn đánh giá liệu 1.3 Kiểu liệu 1.3.1 Định nghĩa kiểu liệu 1.3.2 Các kiểu liệu 1.3.3 Các kiểu liệu có cấu trúc 1.3.4 Một số kiểu liệu có cấu trúc 1.4 Đánh giá độ phức tạp giải thuật 1.4.1 Các bước phân tích thuật toán 1.4.2 Sự phân lớp thuật toán 1.4.3 Phân tích trường hợp trung bình 1.1 Vai trị Cấu trúc liệu đề án tin học • Đề án tin học gì? • Niklaus Wirth: CTDL + Thuật tốn = Chương trình • Chương trình? • Thuật tốn? • CTDL? Sự Cần Thiết Của Thuật Tốn • Tại sử dụng máy tính để xử lý liệu? Nhanh Nhiều Giải tốn mà người khơng thể hồn thành • Làm đạt mục tiêu đó? Nhờ vào tiến kỹ thuật: tăng cấu hình máy chi phí cao Nhờ vào thuật tốn hiệu quả: thơng minh chi phí thấp “Một máy tính siêu hạng khơng thể cứu vãn thuật tốn tồi!” Vai trị CTDL • Cấu trúc liệu cách lưu liệu máy tính cho sử dụng cách hiệu • Ảnh hưởng đến việc triển khai chương trình, chất lượng hiệu kết cuối 1.2 Các tiêu chuẩn đánh giá liệu • Phản ánh thực tế: chọn cấu trúc liệu lưu trữ thể xác đối tượng thực tế Quyết định tính đắn tồn tốn • Phù hợp với thao tác đó: việc phát triển thuật tốn đơn giản, tự nhiên hơn; chương trình đạt hiệu cao tốc độ xử lý Tăng tính hiệu đề án • Tiết kiệm tài nguyên hệ thống: sử dụng tài nguyên hệ thống (CPU nhớ) vừa đủ để đảm nhiệm chức • Tùy nhu cầu thực tế mà chọn cấu trúc liệu phù hợp để tiết kiệm thời gian xử lý, tối ưu nhớ… 1.3 Kiểu liệu 1.3.1 Định nghĩa kiểu liệu 1.3.2 Các kiểu liệu 1.3.3 Các kiểu liệu có cấu trúc 1.3.4 Một số kiểu liệu có cấu trúc 1.3.1 Định nghĩa kiểu liệu • Kiểu liệu T xác định , với: • V: tập giá trị hợp lệ mà đối tượng kiểu T lưu trữ • O: tập thao tác xử lý thi hành đối tượng kiểu T • Ví dụ: kiểu liệu số nguyên int C có ▫ V={-32768 32767} ▫ O={+, -, *, /, %} 1.3.4 Một số kiểu liệu có cấu trúc • Kiểu chuỗi ký tự: ▫ ▫ ▫ ▫ Thư viện: string.lib Chiều dài tối đa: 65335 ký tự (đánh số 0) Chuỗi đặt nháy kép: “ABC…” Khai báo: []; char S[10]; char S[]=“ABC”; ▫ Một số thao tác xử lý: strcmp, strcpy, itoa, atoi, atof, gets, puts,… 1.3.4 Một số kiểu liệu có cấu trúc • Kiểu mảng: ▫ Mỗi phần tử tập hợp có thứ tự giá trị có cấu trúc lưu trữ liên tiếp nhớ ▫ Các phần tử đánh dấu bắt đầu số ▫ Có loại: mảng chiều mảng chiều ▫ Khai báo: Mảng 1c: []; Mảng 2c: [][]; int A[100]; int A[]={1, 7, -3, 8, 19}; int A[2][5]; ▫ Một số thao tác xử lý: giới thiệu chương 1.3.4 Một số kiểu liệu có cấu trúc • Kiểu mẫu tin – cấu trúc: ▫ Mỗi phần tử tập hợp giá trị khác cấu trúc ▫ Khai báo: typedef struct { ; ; … } []; struct tagNguoi { char HoTen[30]; int NamSinh; char NoiSinh[40]; char GioiTinh; char DiaChi[50]; char Ttgd; } Nguoi; 1.3.4 Một số kiểu liệu có cấu trúc • Kiểu Union: Tương tự kiểu struct trường phép dùng chung vùng nhớ Struct tagNguoi { char HoTen[30]; int NamSinh; char NoiSinh[40]; char GioiTinh; char DiaChi[50]; char Ttgd; union { char tenVo[30]; char tenChong[30]; }Nguoi; Cách truy xuất đến trường biến??? } 1.4 Đánh giá độ phức tạp giải thuật • 1.4.1 Các bước phân tích thuật tốn • 1.4.2 Sự phân lớp thuật tốn • 1.4.3 Phân tích trường hợp trung bình Độ Phức Tạp Của Thuật Tốn • Độ phức tạp không gian (dung lượng nhớ sử dụng) • Độ phức tạp thời gian Một thuật tốn hiệu quả: Chi phí cần sử dụng tài ngun thấp: Bộ nhớ, thời gian sử dụng CPU, … • Các ký hiệu: T(n), Ơ lớn O(), nhỏ o() , Ω, Θ, ω ??? • Phân tích độ phức tạp thuật toán: N khối lượng liệu cần xử lý Mô tả độ phức tạp thuật toán qua hàm f(N) Hai phương pháp đánh giá độ phức tạp thuật toán: Phương pháp thực nghiệm Phương pháp xấp xỉ toán học Phương Pháp Thực Nghiệm • Cài thuật tốn chọn liệu thử nghiệm • Thống kê thơng số nhận chạy liệu • Ưu điểm: Dễ thực • Nhược điểm: Chịu hạn chế ngơn ngữ lập trình Ảnh hưởng trình độ người lập trình Chọn liệu thử đặc trưng cho tất tập liệu vào thuật toán: khó khăn tốn nhiều chi phí Phụ thuộc vào phần cứng Phương Pháp Xấp Xỉ • Đánh giá giá thuật toán theo hướng tiệm xấp xỉ tiệm cận qua khái niệm O() • Ưu điểm: Ít phụ thuộc mơi trường phần cứng • Nhược điểm: Phức tạp • Các trường hợp độ phức tạp quan tâm: ▫ Trường hợp tốt (phân tích xác) ▫ Trường hợp xấu (phân tích xác) ▫ Trường hợp trung bình (mang tích dự đốn) 1.4.1 Các bước phân tích thuật tốn • B1: Xác định đặc trưng liệu làm liệu nhập thuật tốn định phân tích thích hợp • B2: Nhận thao tác trừu tượng để tách biệt phân tích với cài đặt • B3: Phân tích mặt tốn học: tìm giá trị trung bình, trường hợp xấu nhất, trường hợp tốt 1.4.2 Sự phân lớp thuật tốn • Sử dụng ký hiệu BigO ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ Hằng số : O(c) logN : O(logN) N : O(N) NlogN : O(NlogN) : O(N2) N2 : O(N3) N3 : O(2N) 2N N! :O(N!) Độ phức tạp tăng dần 1.4.3 Phân tích trường hợp trung bình • Thời gian chạy trung bình: Là trung bình cộng thời gian chạy tất liệu cỡ Mang tính dự đốn? ... để làm tập) • Chuyên cần: vắng >20% số buổi bị cấm thi Nội dung chương trình • Chương 1: TỔNG QUAN VỀ GIẢI THUẬT VÀ CẤU TRÚC DỮ LIỆU (5) • Chương 2: TÌM KIẾM VÀ SẮP XẾP (Báo cáo nhóm 15-10)... KẾT (10-10) • Chương 4: HÀNG ĐỢI VÀ NGĂN XẾP (5-5) • Chương 5: CÂY NHỊ PHÂN (10-5) Chương TỔNG QUAN VỀ GIẢI THUẬT VÀ CẤU TRÚC DỮ LIỆU (Số tiết: 05; LT: 05; TH: 0) 1.1 Vai trò Cấu trúc liệu đề... Ưu điểm: Ít phụ thuộc mơi trường phần cứng • Nhược điểm: Phức tạp • Các trường hợp độ phức tạp quan tâm: ▫ Trường hợp tốt (phân tích xác) ▫ Trường hợp xấu (phân tích xác) ▫ Trường hợp trung bình