Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Huỳnh Cao Thế Cường
Số trang: 59
Loại file: ppt
Dung lượng: 629.00 KB
Lượt xem: 7
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Chương 1 - Tổng quan cấu trúc dữ liệu. Nội dung chính trong chương này gồm có: Cấu trúc dữ liệu (Data Structures), kiểu dữ liệu trừu tượng (Abstract Data Type - ADT), giải thuật (Algorithms), tính toán độ phức tạp của giải thuật (Computational complexity of algrorithms), phân tích giải thuật (Algorithm Analysis).
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Huỳnh Cao Thế Cường TRƯỜNG ĐẠI HỌC AN GIANG KHOA KỸ THUẬT CÔNG NGHỆ MÔI TRƯỜNG CẤU TRÚC DỮ LIỆU 1 Giảng viên phụ trách: HUỲNH CAO THẾ CƯỜNG Bộ môn Tin học email: hctcuong@agu.edu.vn 1 1 Chương 1. TỔNG QUAN CẤU TRÚC DỮ LIỆU Cấu trúc dữ liệu (Data Structures) Kiểu dữ liệu trừu tượng (Abstract Data Type - ADT) Giải thuật (Algorithms) Tính toán độ phức tạp của giải thuật (Computational complexity of algrorithms) Phân tích giải thuật (Algorithm Analysis) 2 Cấu trúc dữ liệu (Data Structures) Cấu trúc dữ liệu dùng để tổ chức dữ liệu Thường có nhiều hơn một thành phần Có các thao tác hợp lý trên dữ liệu Dữ liệu có thể được kết nối với nhau (ví dụ: array) như là một tập hợp. 3 Kiểu dữ liệu trừu tượng (ADT) Một kiểu dữ liệu trừu tượng (Abstract Data Type - ADT) là tập hợp các đối tượng và được xác định hoàn toàn bởi các phép toán có thể biểu diễn trên các đối tượng đó. ADT là một mô hình toán của cấu trúc dữ liệu xác định kiểu dữ liệu được lưu trữ, các thao tác được hỗ trợ trên dữ liệu đó và kiểu của các tham số trong từng thao tác. 4 Kiểu dữ liệu trừu tượng (ADT) Có hai loại ADT Đơn/nguyên tử: int, char, … Có cấu trúc: array, struct,… Ngoài những ADT do ngôn ngữ lập trình cung cấp, người lập trình có tạo ra các ADT của riêng mình Trong C, các ADT do người dùng định nghĩa sẽ thông qua kiểu cấu trúc (struct), các thao tác được xây dựng bằng các hàm (functions) 5 Kiểu dữ liệu trừu tượng (ADT) Các lớp thao tác của một ADT Tạo lập đối tượng mới Biến đổi các đối tượng của ADT – Mang lại những thay đổi cần thiết cho đối tượng Quan sát – Cho biết trạng thái của đối tượng Chuyển đổi kiểu – Chuyển kiểu từ kiểu này sang kiểu khác Vào ra dữ liệu – Nhập/xuất giá trị cho đối tượng 6 Kiểu dữ liệu trừu tượng (ADT) Person Cấu thành bởi: – Họ tên – Ngày sinh – Nơi sinh – Phái Phép toán: – Tạo mới một person (với thông tin đầy đủ) – Hiển thị thông tin về một person – …. 7 Tại sao cần phải học Cấu trúc dữ liệu và Giải thuật? Giải thuật? Tại sao lại cần phải học giải thuật? Vai trò của giải thuật? Những vấn đề nào sẽ cần giải quyết bằng giải thuật? Giải thuật: Là một khái niệm quan trọng nhất trong tin học. Thuật ngữ này xuất phát từ nhà tóa học Ảrập Abu Ja’far Mohammed ibn Musa al Khowarizmi (khoảng năm 825) Thuật toán nổi tiếng nhất, có từ thời kỳ cổ Hy Lạp là thuật toán Euclid. Là một phương pháp giải quyết vấn đề thích hợp để cài đặt như một chương trình máy tính. 8 Tại sao cần phải học Cấu trúc dữ liệu và Giải thuật? Algorithm: A finite sequence of steps for solving a logical or mathematical problem or performing a task. (The Microsoft Computer Dictionary, Fifth Edition ) A computable set of steps to achieve a desired result. Informally, an algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output. An algorithm is thus a sequence of computational steps that transform the input into the output (Introduction to Algorithms, 2nd, Thomas H. Cormen, 2001) 9 Tại sao cần phải học Cấu trúc dữ liệu và Giải thuật? Cấu trúc dữ liệu? Được tạo ra để phục vụ cho các giải thuật Phải hiểu cấu trúc dữ liệu để hiểu giải thuật để giải quyết vấn đề Các giải thuật đơn giản có thể cần đến cấu trúc dữ liệu phức tạp Các giải thuật phức tạp có thể chỉ dùng các cấu trúc dữ liệu đơn giản Cấu trúc dữ liệu + Giải thuật = Chương trình 10 Kiểu dữ liệu ĐN kiểu dữ liệu Các thuộc tính của 1 kiểu dữ liệu Tên kiểu dữ liệu Miền giá trị Kích thước lưu trữ Tập các toán tử, phép toán tác động trên kiểu dữ liệu Một số kiểu dữ liệu có cấu trúc cơ bản Kiểu chuỗi ký tự (string), Kiểu mảng (array) Kiểu mẩu tin (struct) Kiểu tập hợp (union) 11 Tại sao cần phải học Cấu trúc dữ liệu và Giải thuật? Dùng máy tính để: Giải quyết các vấn đề về tính toán? Việc giải quyết vấn đề nhanh hơn? Khả năng truy xuất nhiều dữ liệu hơn? Kỹ thuật vs. Thực thi/Giá Kỹ thuật có thể tăng khả năng giải quyết vấn đề bằng nhân tố hằng. Thiết kế giải thuật tốt có thể giúp giải quyết vấn đề tốt hơn nhiều và có thể rẻ hơn. Một siêu máy tính không thể giúp một giải thuật tồi làm việc tốt hơn 12 Một số tính chất chung của các thuật toán Đầu vào (input): có các giá trị đầu vào xác định. Đầu ra (ouput): từ tập các giá trị đầu vào, thuât toán sẽ tạo các giá trị đầu ra, xem là nghiệm của bài toán. Tính xác định (definiteness): các bước của thuật toán phải được xác định một cách chính xác. Tính hữu hạn (finiteness): một thuật toán chứa một số hữu hạn các bước (có thể rất lớn) với mọi tập đầu vào. Tính hiệu quả(effectiveness): mỗi bước phải thực hiện chính xác, trong khoảng thơ ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Huỳnh Cao Thế Cường TRƯỜNG ĐẠI HỌC AN GIANG KHOA KỸ THUẬT CÔNG NGHỆ MÔI TRƯỜNG CẤU TRÚC DỮ LIỆU 1 Giảng viên phụ trách: HUỲNH CAO THẾ CƯỜNG Bộ môn Tin học email: hctcuong@agu.edu.vn 1 1 Chương 1. TỔNG QUAN CẤU TRÚC DỮ LIỆU Cấu trúc dữ liệu (Data Structures) Kiểu dữ liệu trừu tượng (Abstract Data Type - ADT) Giải thuật (Algorithms) Tính toán độ phức tạp của giải thuật (Computational complexity of algrorithms) Phân tích giải thuật (Algorithm Analysis) 2 Cấu trúc dữ liệu (Data Structures) Cấu trúc dữ liệu dùng để tổ chức dữ liệu Thường có nhiều hơn một thành phần Có các thao tác hợp lý trên dữ liệu Dữ liệu có thể được kết nối với nhau (ví dụ: array) như là một tập hợp. 3 Kiểu dữ liệu trừu tượng (ADT) Một kiểu dữ liệu trừu tượng (Abstract Data Type - ADT) là tập hợp các đối tượng và được xác định hoàn toàn bởi các phép toán có thể biểu diễn trên các đối tượng đó. ADT là một mô hình toán của cấu trúc dữ liệu xác định kiểu dữ liệu được lưu trữ, các thao tác được hỗ trợ trên dữ liệu đó và kiểu của các tham số trong từng thao tác. 4 Kiểu dữ liệu trừu tượng (ADT) Có hai loại ADT Đơn/nguyên tử: int, char, … Có cấu trúc: array, struct,… Ngoài những ADT do ngôn ngữ lập trình cung cấp, người lập trình có tạo ra các ADT của riêng mình Trong C, các ADT do người dùng định nghĩa sẽ thông qua kiểu cấu trúc (struct), các thao tác được xây dựng bằng các hàm (functions) 5 Kiểu dữ liệu trừu tượng (ADT) Các lớp thao tác của một ADT Tạo lập đối tượng mới Biến đổi các đối tượng của ADT – Mang lại những thay đổi cần thiết cho đối tượng Quan sát – Cho biết trạng thái của đối tượng Chuyển đổi kiểu – Chuyển kiểu từ kiểu này sang kiểu khác Vào ra dữ liệu – Nhập/xuất giá trị cho đối tượng 6 Kiểu dữ liệu trừu tượng (ADT) Person Cấu thành bởi: – Họ tên – Ngày sinh – Nơi sinh – Phái Phép toán: – Tạo mới một person (với thông tin đầy đủ) – Hiển thị thông tin về một person – …. 7 Tại sao cần phải học Cấu trúc dữ liệu và Giải thuật? Giải thuật? Tại sao lại cần phải học giải thuật? Vai trò của giải thuật? Những vấn đề nào sẽ cần giải quyết bằng giải thuật? Giải thuật: Là một khái niệm quan trọng nhất trong tin học. Thuật ngữ này xuất phát từ nhà tóa học Ảrập Abu Ja’far Mohammed ibn Musa al Khowarizmi (khoảng năm 825) Thuật toán nổi tiếng nhất, có từ thời kỳ cổ Hy Lạp là thuật toán Euclid. Là một phương pháp giải quyết vấn đề thích hợp để cài đặt như một chương trình máy tính. 8 Tại sao cần phải học Cấu trúc dữ liệu và Giải thuật? Algorithm: A finite sequence of steps for solving a logical or mathematical problem or performing a task. (The Microsoft Computer Dictionary, Fifth Edition ) A computable set of steps to achieve a desired result. Informally, an algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output. An algorithm is thus a sequence of computational steps that transform the input into the output (Introduction to Algorithms, 2nd, Thomas H. Cormen, 2001) 9 Tại sao cần phải học Cấu trúc dữ liệu và Giải thuật? Cấu trúc dữ liệu? Được tạo ra để phục vụ cho các giải thuật Phải hiểu cấu trúc dữ liệu để hiểu giải thuật để giải quyết vấn đề Các giải thuật đơn giản có thể cần đến cấu trúc dữ liệu phức tạp Các giải thuật phức tạp có thể chỉ dùng các cấu trúc dữ liệu đơn giản Cấu trúc dữ liệu + Giải thuật = Chương trình 10 Kiểu dữ liệu ĐN kiểu dữ liệu Các thuộc tính của 1 kiểu dữ liệu Tên kiểu dữ liệu Miền giá trị Kích thước lưu trữ Tập các toán tử, phép toán tác động trên kiểu dữ liệu Một số kiểu dữ liệu có cấu trúc cơ bản Kiểu chuỗi ký tự (string), Kiểu mảng (array) Kiểu mẩu tin (struct) Kiểu tập hợp (union) 11 Tại sao cần phải học Cấu trúc dữ liệu và Giải thuật? Dùng máy tính để: Giải quyết các vấn đề về tính toán? Việc giải quyết vấn đề nhanh hơn? Khả năng truy xuất nhiều dữ liệu hơn? Kỹ thuật vs. Thực thi/Giá Kỹ thuật có thể tăng khả năng giải quyết vấn đề bằng nhân tố hằng. Thiết kế giải thuật tốt có thể giúp giải quyết vấn đề tốt hơn nhiều và có thể rẻ hơn. Một siêu máy tính không thể giúp một giải thuật tồi làm việc tốt hơn 12 Một số tính chất chung của các thuật toán Đầu vào (input): có các giá trị đầu vào xác định. Đầu ra (ouput): từ tập các giá trị đầu vào, thuât toán sẽ tạo các giá trị đầu ra, xem là nghiệm của bài toán. Tính xác định (definiteness): các bước của thuật toán phải được xác định một cách chính xác. Tính hữu hạn (finiteness): một thuật toán chứa một số hữu hạn các bước (có thể rất lớn) với mọi tập đầu vào. Tính hiệu quả(effectiveness): mỗi bước phải thực hiện chính xác, trong khoảng thơ ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Bài giảng Cấu trúc dữ liệu Giải thuật Cơ sở dữ liệu Kiểu dữ liệu trừu tượng Phân tích giải thuậtGợi ý tài liệu liên quan:
-
62 trang 391 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 371 6 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán trên C++
74 trang 348 0 0 -
Đề 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 303 0 0 -
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 282 0 0 -
13 trang 273 0 0
-
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 267 0 0 -
Tài liệu học tập Tin học văn phòng: Phần 2 - Vũ Thu Uyên
85 trang 240 1 0 -
Đề cương chi tiết học phần Quản trị cơ sở dữ liệu (Database Management Systems - DBMS)
14 trang 235 0 0 -
8 trang 184 0 0