Bài giảng Cấu trúc dữ liệu và giải thuật – Chương 1: Tổng quan về giải thuật và cấu trúc dữ liệu
Số trang: 10
Loại file: pdf
Dung lượng: 204.65 KB
Lượt xem: 10
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
"Bài giảng Cấu trúc dữ liệu và giải thuật – Chương 1: Tổng quan về giải thuật và cấu trúc dữ liệu" giúp người học nắm được các kiến thức về vai trò của cấu trúc dữ liệu trong một đề án tin học; các tiêu chuẩn đánh giá dữ liệu; kiểu dữ liệu; đánh giá độ phức tạp của giải thuật.
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật – Chương 1: Tổng quan về giải thuật và cấu trúc dữ liệu CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬTCHƯƠNG 1: TỔNG QUAN VỀ GIẢI THUẬT VÀ CẤU TRÚC DỮ LIỆUNội dung 1.1. Vai trò của Cấu trúc dữ liệu trong một đề án tin học 1.2. Các tiêu chuẩn đánh giá dữ liệu 1.3. Kiểu dữ liệu 1.4. Đánh giá độ phức tạp của giải thuật Chương 1: Tổng quan Vũ Văn Nam - CNTT 2 VAI TRÒ CỦA CẤU TRÚC DỮ LIỆU Dữ liệu: Không phần mềm nào là không có dữ liệu! Việc chọn dữ liệu liên quan đến chất lượng chương trình (tốc độ xử lý, dung lượng, số dòng lệnh…) Thuật toán – Giải thuật – Thuật giải Là tập hợp (dãy) hữu hạn các chỉ thị (hành động) được định nghĩa rõ ràng nhằm giải quyết một bài toán cụ thể nào đó. Minh họa bằng ngôn ngữ tự nhiên (natural language), bằng sơ đồ (flow chart) hoặc bằng mã giả (pseudo code) Mã giả bằng tựa C hoặc Pascal thường được sử dụng Chương 1: Tổng quan Vũ Văn Nam - CNTT 3 VAI TRÒ CỦA CẤU TRÚC DỮ LIỆU Quan hệ giữa CTDL và GT: Cấu trúc dữ liệu + Giải thuật (+Giao diện) = Chương trình Không thể thiếu 1 trong hai đối tượng Việc tạo chương trình chỉ là vấn đề lựa chọn ngôn ngữ Chương 1: Tổng quan Vũ Văn Nam - CNTT 4ĐÁNH GIÁ CTDL & GT Tiêu chuẩn đánh giá CTDL: tiết kiệm tài nguyên (bộ nhớ trong), phản ảnh đúng thực tế của bài toán, dễ dàng trong việc thao tác dữ liệu. Đánh giá độ phức tạp thuật toán: Ước lượng thời gian thực hiện T(n) để so sánh tương đối Xét hai thời gian Tmin thấp nhất và Tmax cao nhất để tính Tagv Chương 1: Tổng quan Vũ Văn Nam - CNTT 5KIỂU DỮ LIỆU Kiểu dữ liệu T có hai thành phần: Tập giá trị V Tập phép toán O T = Mỗi kiểu phải có tên (định danh – Identifier) và độ lớn mỗi phần tử lưu trữ trong bộ nhớ máy tính, tính bằng B(Byte) Các kiểu dữ liệu cơ sở Kiểu số nguyên không dấu có dấu 1B 0->255 -128->127 2B 0->65535 -32768->32767 4B 0->232 -1 -231 ->231 -1 Phép toán: O={+,-,*,/, DIV, MOD, %, so sánh,…} Chương 1: Tổng quan Vũ Văn Nam - CNTT 6KIỂU DỮ LIỆU Kiểu số thực 4B,6B,8B,10B Phép toán: O={+,-,*,/, %, so sánh,…} Kiểu ký tự: 1B, 2B (Unicode) Phép toán: O={ +, -, so sánh,…} Kiểu chuỗi (xâu) ký tự: Độ lớn phụ thuộc ngôn ngữ Phép toán: O = {+, &, so sánh, …} Kiểu logic (luận lý) Độ lớn 1B có hai giá trị True, False Phép toán: O={AND, OR, NOT, XOR, so sánh} Chương 1: Tổng quan Vũ Văn Nam - CNTT 7KIỂU DỮ LIỆU Các kiểu dữ liệu có cấu trúc Xây dựng dựa trên các kiểu đã có Có hai loại thông thường: Mảng và bản ghi (cấu trúc) Dữ liệu kiểu con trỏ: Quản lý địa chỉ bộ nhớ Có hai loại: Near (2B) và Far (4B) Chương 1: Tổng quan Vũ Văn Nam - CNTT 8 ĐÁNH GIÁ ĐỘ PHỨC TẠP CỦA THUẬT TOÁN Các bước đánh giá Xem xét kích thước dữ liệu vào (vd: n = ?), thời gian chạy là một hàm của n, ký hiệu là T(n) Tách biệt các thao tác trừu tượng của thuật toán để xác định các phép toán phụ thuộc tốc độ xử lý. Không thể dựa vào các phép toán này để đánh giá thuật toán. Tìm ra các giá trị T(n) trong t/h xấu nhất, tốt nhất và trung bình. Ký hiệu O(f(n)) là để biểu diễn độ phức tạp của thuật toán. Sự phân lớp các thuật toán: O(1): Thời gian chạy là hằng số (không phụ thuộc n) O(log(n)): Thời gian là hàm Logarit của n O(n): Thời gian tuyến tính Chương 1: Tổng quan Vũ Văn Nam - CNTT 9 ĐÁNH GIÁ ĐỘ PHỨC TẠP CỦA THUẬT TOÁN Sự phân lớp các thuật toán: O(nlog(n)), O(n2), O(n3): Thời gian đa thức O(2n), O(n!)..: Thời gian hàm mũ Phân tích trường hợp trung bình T/h trung bình là t/h dữ liệu được cho ngẫu nhiên Sử dụng các nguyên lý cộng và nhân để xác định số lần thực hiện các phép toán Xác suất xuất hiện các đối tượng được coi là như nhau trong các phép toán BÀI TẬP Chương 1: Tổng quan Vũ Văn Nam - CNTT 10 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật – Chương 1: Tổng quan về giải thuật và cấu trúc dữ liệu CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬTCHƯƠNG 1: TỔNG QUAN VỀ GIẢI THUẬT VÀ CẤU TRÚC DỮ LIỆUNội dung 1.1. Vai trò của Cấu trúc dữ liệu trong một đề án tin học 1.2. Các tiêu chuẩn đánh giá dữ liệu 1.3. Kiểu dữ liệu 1.4. Đánh giá độ phức tạp của giải thuật Chương 1: Tổng quan Vũ Văn Nam - CNTT 2 VAI TRÒ CỦA CẤU TRÚC DỮ LIỆU Dữ liệu: Không phần mềm nào là không có dữ liệu! Việc chọn dữ liệu liên quan đến chất lượng chương trình (tốc độ xử lý, dung lượng, số dòng lệnh…) Thuật toán – Giải thuật – Thuật giải Là tập hợp (dãy) hữu hạn các chỉ thị (hành động) được định nghĩa rõ ràng nhằm giải quyết một bài toán cụ thể nào đó. Minh họa bằng ngôn ngữ tự nhiên (natural language), bằng sơ đồ (flow chart) hoặc bằng mã giả (pseudo code) Mã giả bằng tựa C hoặc Pascal thường được sử dụng Chương 1: Tổng quan Vũ Văn Nam - CNTT 3 VAI TRÒ CỦA CẤU TRÚC DỮ LIỆU Quan hệ giữa CTDL và GT: Cấu trúc dữ liệu + Giải thuật (+Giao diện) = Chương trình Không thể thiếu 1 trong hai đối tượng Việc tạo chương trình chỉ là vấn đề lựa chọn ngôn ngữ Chương 1: Tổng quan Vũ Văn Nam - CNTT 4ĐÁNH GIÁ CTDL & GT Tiêu chuẩn đánh giá CTDL: tiết kiệm tài nguyên (bộ nhớ trong), phản ảnh đúng thực tế của bài toán, dễ dàng trong việc thao tác dữ liệu. Đánh giá độ phức tạp thuật toán: Ước lượng thời gian thực hiện T(n) để so sánh tương đối Xét hai thời gian Tmin thấp nhất và Tmax cao nhất để tính Tagv Chương 1: Tổng quan Vũ Văn Nam - CNTT 5KIỂU DỮ LIỆU Kiểu dữ liệu T có hai thành phần: Tập giá trị V Tập phép toán O T = Mỗi kiểu phải có tên (định danh – Identifier) và độ lớn mỗi phần tử lưu trữ trong bộ nhớ máy tính, tính bằng B(Byte) Các kiểu dữ liệu cơ sở Kiểu số nguyên không dấu có dấu 1B 0->255 -128->127 2B 0->65535 -32768->32767 4B 0->232 -1 -231 ->231 -1 Phép toán: O={+,-,*,/, DIV, MOD, %, so sánh,…} Chương 1: Tổng quan Vũ Văn Nam - CNTT 6KIỂU DỮ LIỆU Kiểu số thực 4B,6B,8B,10B Phép toán: O={+,-,*,/, %, so sánh,…} Kiểu ký tự: 1B, 2B (Unicode) Phép toán: O={ +, -, so sánh,…} Kiểu chuỗi (xâu) ký tự: Độ lớn phụ thuộc ngôn ngữ Phép toán: O = {+, &, so sánh, …} Kiểu logic (luận lý) Độ lớn 1B có hai giá trị True, False Phép toán: O={AND, OR, NOT, XOR, so sánh} Chương 1: Tổng quan Vũ Văn Nam - CNTT 7KIỂU DỮ LIỆU Các kiểu dữ liệu có cấu trúc Xây dựng dựa trên các kiểu đã có Có hai loại thông thường: Mảng và bản ghi (cấu trúc) Dữ liệu kiểu con trỏ: Quản lý địa chỉ bộ nhớ Có hai loại: Near (2B) và Far (4B) Chương 1: Tổng quan Vũ Văn Nam - CNTT 8 ĐÁNH GIÁ ĐỘ PHỨC TẠP CỦA THUẬT TOÁN Các bước đánh giá Xem xét kích thước dữ liệu vào (vd: n = ?), thời gian chạy là một hàm của n, ký hiệu là T(n) Tách biệt các thao tác trừu tượng của thuật toán để xác định các phép toán phụ thuộc tốc độ xử lý. Không thể dựa vào các phép toán này để đánh giá thuật toán. Tìm ra các giá trị T(n) trong t/h xấu nhất, tốt nhất và trung bình. Ký hiệu O(f(n)) là để biểu diễn độ phức tạp của thuật toán. Sự phân lớp các thuật toán: O(1): Thời gian chạy là hằng số (không phụ thuộc n) O(log(n)): Thời gian là hàm Logarit của n O(n): Thời gian tuyến tính Chương 1: Tổng quan Vũ Văn Nam - CNTT 9 ĐÁNH GIÁ ĐỘ PHỨC TẠP CỦA THUẬT TOÁN Sự phân lớp các thuật toán: O(nlog(n)), O(n2), O(n3): Thời gian đa thức O(2n), O(n!)..: Thời gian hàm mũ Phân tích trường hợp trung bình T/h trung bình là t/h dữ liệu được cho ngẫu nhiên Sử dụng các nguyên lý cộng và nhân để xác định số lần thực hiện các phép toán Xác suất xuất hiện các đối tượng được coi là như nhau trong các phép toán BÀI TẬP Chương 1: Tổng quan Vũ Văn Nam - CNTT 10 ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Cấu trúc dữ liệu và giải thuật Cấu trúc dữ liệu và giải thuật Cấu trúc dữ liệu Tổng quan về giải thuật Kiểu dữ liệu Các tiêu chuẩn đánh giá dữ liệuGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 318 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 232 0 0 -
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 166 0 0 -
3 trang 162 3 0
-
Giải thuật và cấu trúc dữ liệu
305 trang 162 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 156 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 150 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 139 0 0 -
10 trang 138 0 0