Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 1: Các khái niệm cơ bản
Số trang: 48
Loại file: pdf
Dung lượng: 1.83 MB
Lượt xem: 20
Lượt tải: 0
Xem trước 5 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: Các khái niệm cơ bản" cung cấp cho người học các kiến thức: Tổng quan về cấu trúc dữ liệu, tiêu chuẩn đánh giá thuật toán, độ tăng của hàm, độ phức tạp thuật toán, các phương pháp đánh giá độ phức tạp. Mời các bạn cùng tham khảo nội dung chi tiế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: Các khái niệm cơ bảnGiảng viên:Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến2 Kenneth H.Rosen, Toán rời rạc ứng dụng trong Tin học, ltb. 5, nxb. Giáo Dục, 2007, tr. 131 - 143. Mark A. Weiss, Data Structures & Algorithm Analysis in C++, 2nd edition, Addision Wesley, 1998, p. 41 – 67. Cấu trúc dữ liệu và giải thuật - HCMUS 20133 Tổng quan về cấu trúc dữ liệu Tiêu chuẩn đánh giá thuật toán Độ tăng của hàm Độ phức tạp thuật toán Các phương pháp đánh giá độ phức tạp Cấu trúc dữ liệu và giải thuật - HCMUS 20134 According to Peter J. Denning, the fundamental question underlying computer science is, What can be (efficiently) automated?“ [Wikipedia.org, tháng 9 – 2009] Cấu trúc dữ liệu và giải thuật - HCMUS 20135 Để giải quyết nhu cầu tự động hóa, nhu cầu căn bản của Khoa học Máy tính, các nhà khoa học máy tính phải tạo ra sự trừu tượng hóa về những bài toán trong thế giới thực, để người sử dụng máy tính có thể hiểu được và có thể biểu diễn và xử lý được bên trong máy tính. Ví dụ: Mô hình hóa việc biểu diễn cầu thủ bóng đá Mô hình hóa mạch điện … Cấu trúc dữ liệu và giải thuật - HCMUS 20136 Thông thường, tìm ra một sự trừu tượng hóa thường rất khó, vì: Giới hạn về khả năng xử lý của máy. Phảicung cấp cho máy một mô hình về thế giới đến mức chi tiết như những gì con người có, không chỉ là sự kiện mà còn cả các nguyên tắc và mối liên hệ. Cấu trúc dữ liệu và giải thuật - HCMUS 20137 Sự trừu tượng hóa ở đây được sử dụng là sự đơn giản hóa, thay thế một tình huống phức tạp và nhiều chi tiết trong thế giới thực bằng một mô hình dễ hiểu để chúng ta có thể giải quyết được bài toán trong đó. Có thể hiểu là chúng ta loại bớt những chi tiết có tác dụng rất ít hoặc không có tác dụng gì đối với lời giải của bài toán -> tạo ra một mô hình cho phép chúng ta giải quyết với bản chất của bài toán. Cấu trúc dữ liệu và giải thuật - HCMUS 20138 Kiểu dữ liệu (của biến) xác định tập các giá trị mà biến có thể chấp nhận và các phép toán có thể thực hiện trên các giá trị đó. Ví dụ: Kiểu dữ liệu kiểu số nguyên, Kiểu dữ liệu kiểu số thực, Kiểu dữ liệu ký tự. Cấu trúc dữ liệu và giải thuật - HCMUS 20139 Kiểu dữ liệu sơ cấp là kiểu dữ liệu mà giá trị của nó là đơn nhất. Ví dụ: Trong ngôn ngữ lập trình C chuẩn, kiểu int gọi là kiểu sơ cấp vì kiểu này bao gồm các số nguyên từ -32768 đến 32767 và các phép toán +, -, *, /, %… Mỗi ngôn ngữ đều có cung cấp sẵn các kiểu dữ liệu cơ bản (basic data type) dùng như những thành phần cơ sở để tạo nên các dữ liệu có cấu trúc phức tạp hơn. Cấu trúc dữ liệu và giải thuật - HCMUS 201310 Kiểu dữ liệu có cấu trúc (Structured Data Type): là kiểu dữ liệu mà giá trị của nó là sự kết hợp các giá trị khác. Ví dụ: Kiểu dữ liệu có cấu trúc gồm các giá trị giao dịch của một phiên giao dịch (chứng khoán). Kiểu dữ liệu mô tả lí lịch sinh viên. … Còn được gọi là kiểu dữ liệu tổ hợp. Cấu trúc dữ liệu và giải thuật - HCMUS 201311 Kiểu dữ liệu trừu tượng (abstract data type - ADT) bao gồm tập hợp các dữ liệu và các thao tác trên các dữ liệu đó. Cần phải chú ý nhiều về đó là thủ tục hoặc dữ liệu GÌ thay vì chú ý là LÀM SAO cài đặt hoặc hiện thực chúng. Ví dụ: Kiểu dữ liệu trừu tượng PhanSo. Kiểu dữ liệu trừu tượng Ngay. Kiểu dữ liệu trừu tượng Gio. Cấu trúc dữ liệu và giải thuật - HCMUS 201312 Cấu trúc dữ liệu là các thành phần của ngôn ngữ lập trình dùng để lưu giữ dữ liệu trong kiểu dữ liệu trừu tượng. Ví dụ mảng (array), tập tin (file), danh sách liên kết (linked list), cây nhị phân,… Các cấu trúc dữ liệu được chọn phải có khả năng biểu diễn được tập input và output của bài toán cần giải. Cấu trúc dữ liệu và giải thuật - HCMUS 201313 Mặc dù tên nghe có vẻ giống nhau, “danh sách” và “danh sách liên kết” là những khái niệm khác nhau. Danh sách là kiểu dữ liệu trừu tượng (ADT). Danh sách liên kết là một cấu trúc dữ liệu. Cấu trúc dữ liệu và giải thuật - HCMUS 201314 ...
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: Các khái niệm cơ bảnGiảng viên:Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến2 Kenneth H.Rosen, Toán rời rạc ứng dụng trong Tin học, ltb. 5, nxb. Giáo Dục, 2007, tr. 131 - 143. Mark A. Weiss, Data Structures & Algorithm Analysis in C++, 2nd edition, Addision Wesley, 1998, p. 41 – 67. Cấu trúc dữ liệu và giải thuật - HCMUS 20133 Tổng quan về cấu trúc dữ liệu Tiêu chuẩn đánh giá thuật toán Độ tăng của hàm Độ phức tạp thuật toán Các phương pháp đánh giá độ phức tạp Cấu trúc dữ liệu và giải thuật - HCMUS 20134 According to Peter J. Denning, the fundamental question underlying computer science is, What can be (efficiently) automated?“ [Wikipedia.org, tháng 9 – 2009] Cấu trúc dữ liệu và giải thuật - HCMUS 20135 Để giải quyết nhu cầu tự động hóa, nhu cầu căn bản của Khoa học Máy tính, các nhà khoa học máy tính phải tạo ra sự trừu tượng hóa về những bài toán trong thế giới thực, để người sử dụng máy tính có thể hiểu được và có thể biểu diễn và xử lý được bên trong máy tính. Ví dụ: Mô hình hóa việc biểu diễn cầu thủ bóng đá Mô hình hóa mạch điện … Cấu trúc dữ liệu và giải thuật - HCMUS 20136 Thông thường, tìm ra một sự trừu tượng hóa thường rất khó, vì: Giới hạn về khả năng xử lý của máy. Phảicung cấp cho máy một mô hình về thế giới đến mức chi tiết như những gì con người có, không chỉ là sự kiện mà còn cả các nguyên tắc và mối liên hệ. Cấu trúc dữ liệu và giải thuật - HCMUS 20137 Sự trừu tượng hóa ở đây được sử dụng là sự đơn giản hóa, thay thế một tình huống phức tạp và nhiều chi tiết trong thế giới thực bằng một mô hình dễ hiểu để chúng ta có thể giải quyết được bài toán trong đó. Có thể hiểu là chúng ta loại bớt những chi tiết có tác dụng rất ít hoặc không có tác dụng gì đối với lời giải của bài toán -> tạo ra một mô hình cho phép chúng ta giải quyết với bản chất của bài toán. Cấu trúc dữ liệu và giải thuật - HCMUS 20138 Kiểu dữ liệu (của biến) xác định tập các giá trị mà biến có thể chấp nhận và các phép toán có thể thực hiện trên các giá trị đó. Ví dụ: Kiểu dữ liệu kiểu số nguyên, Kiểu dữ liệu kiểu số thực, Kiểu dữ liệu ký tự. Cấu trúc dữ liệu và giải thuật - HCMUS 20139 Kiểu dữ liệu sơ cấp là kiểu dữ liệu mà giá trị của nó là đơn nhất. Ví dụ: Trong ngôn ngữ lập trình C chuẩn, kiểu int gọi là kiểu sơ cấp vì kiểu này bao gồm các số nguyên từ -32768 đến 32767 và các phép toán +, -, *, /, %… Mỗi ngôn ngữ đều có cung cấp sẵn các kiểu dữ liệu cơ bản (basic data type) dùng như những thành phần cơ sở để tạo nên các dữ liệu có cấu trúc phức tạp hơn. Cấu trúc dữ liệu và giải thuật - HCMUS 201310 Kiểu dữ liệu có cấu trúc (Structured Data Type): là kiểu dữ liệu mà giá trị của nó là sự kết hợp các giá trị khác. Ví dụ: Kiểu dữ liệu có cấu trúc gồm các giá trị giao dịch của một phiên giao dịch (chứng khoán). Kiểu dữ liệu mô tả lí lịch sinh viên. … Còn được gọi là kiểu dữ liệu tổ hợp. Cấu trúc dữ liệu và giải thuật - HCMUS 201311 Kiểu dữ liệu trừu tượng (abstract data type - ADT) bao gồm tập hợp các dữ liệu và các thao tác trên các dữ liệu đó. Cần phải chú ý nhiều về đó là thủ tục hoặc dữ liệu GÌ thay vì chú ý là LÀM SAO cài đặt hoặc hiện thực chúng. Ví dụ: Kiểu dữ liệu trừu tượng PhanSo. Kiểu dữ liệu trừu tượng Ngay. Kiểu dữ liệu trừu tượng Gio. Cấu trúc dữ liệu và giải thuật - HCMUS 201312 Cấu trúc dữ liệu là các thành phần của ngôn ngữ lập trình dùng để lưu giữ dữ liệu trong kiểu dữ liệu trừu tượng. Ví dụ mảng (array), tập tin (file), danh sách liên kết (linked list), cây nhị phân,… Các cấu trúc dữ liệu được chọn phải có khả năng biểu diễn được tập input và output của bài toán cần giải. Cấu trúc dữ liệu và giải thuật - HCMUS 201313 Mặc dù tên nghe có vẻ giống nhau, “danh sách” và “danh sách liên kết” là những khái niệm khác nhau. Danh sách là kiểu dữ liệu trừu tượng (ADT). Danh sách liên kết là một cấu trúc dữ liệu. Cấu trúc dữ liệu và giải thuật - HCMUS 201314 ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Bài toán giải thuật Đánh giá thuật toán Tiêu chuẩn đánh giá thuật toán Độ phức tạp thuật toán Phương pháp đánh giá độ phức tạpTài liệu có 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 360 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 187 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 175 0 0 -
Nghiên cứu thuật toán lý thuyết: Phần 2
61 trang 159 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 148 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 145 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 143 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 109 0 0 -
Ứng dụng và cài đặt cấu trúc dữ liệu bằng C: Phần 1
338 trang 103 0 0 -
49 trang 87 0 0