Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 41 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
41
Dung lượng
384,5 KB
Nội dung
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT TRƯỜNG ĐH CÔNG NGHỆ ĐỒNG NAI CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Số tiết lý thuyết: 45 Số tiết thực hành: 30 Tài Liệu Tham Khảo CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Trần Hạnh Nhi, Dương Anh Đức Giáo trình Cấu Trúc Dữ Liệu 1, ĐHQG Tp HCM, 2000 Robert Sedgewick Cẩm nang thuật toán (bản dịch nhóm tác giả ĐH KHTN), NXB Khoa học kỹ thuật, 1994 P S Deshpande, O G Kakde C & Data Structures, 2004 Dr Dobb's Algorithms and Data Structures, 1999 A.V Aho, J.E Hopcroft, J.D Ullman Data structures and Algorithms, Addison Wesley, 1983 Nội Dung Chương Trình CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Buổi 1: Giới thiệu CTDL & Giải Thuật Các thuật toán tìm kiếm Buổi 2:Interchange Sort, Selection Sort, Bubble Sort, Insertion Sort Buổi 3:Shaker Sort, Shell Sort, Heap Sort Buổi 4:Quick Sort, MergeSort, Radix Sort Buổi 5:Cấu trúc động, Danh sách liên kết đơn Nội Dung Chương Trình CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Buổi 6: Đệ qui, Stack, Queue Buổi 7: Danh sách liên kết kép Buổi 8: Cây, Cây nhị phân, nhị phân tìm kiếm Buổi 9: Cây cân (AVL) Buổi 10: Các CTDL mở rộng Buổi 11: Ôn tập Hình Thức Thi CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Giữa kỳ: Seminar theo nhóm Kiểm tra lý thuyết giấy Bài thu hoạch Điểm cộng thêm Cuối kỳ: Thi trắc nghiệm máy Tổng điểm: 10 điểm CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT CHƯƠNG TỔNG TỔNGQUAN QUAN VỀ VỀCTDL CTDLVÀ VÀTHUẬT THUẬTTOÁN TOÁN Nội Dung CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Tổng quan CTDL thuật toán Các tiêu chuẩn CTDL Vai trò CTDL Độ phức tạp thuật toán Thực hiệu chỉnh chương trình Tiêu chuẩn chương trình Khái Niệm Về CTDL Và Thuật Toán CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Niklaus Wirth: CTDL + Thuật toán = Chương trình Cần nghiên cứu thuật toán CTDL! Sự Cần Thiết Của Thuật Toán CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Tại sử dụng máy tính để xử lý liệu? Nhanh Nhiều Giải toán mà người hoà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 toán hiệu quả: thông minh chi phí thấp “Một máy tính siêu hạng cứu vãn thuật toán tồi!” CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Thuật Toán Thuật toán: Một dãy hữu hạn thị thi hành để đạt mục tiêu đề Ví dụ: Thuật toán tính tổng tất số nguyên dương nhỏ n gồm bước sau: Bước 1: S=0, i=1; Bước 2: ivc f(n)->n Độ phức tạp thuật toán: O(n) 28 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Vi dụ: đánh giá giải thuật sort n số nguyên Giải thuật: B0: nhập n, nhập dãy n số nguyên a[0], a[1],…,a[n-1] B1: i=0; B2: Trong i[...]... Tiết kiệm tài nguyên hệ thống 33 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Vai Trò Của Cấu Trúc Dữ Liệu Cấu trúc dữ liệu đóng vai trò quan trọng trong việc kết hợp và đưa ra cách giải quyết bài toán CTDL hỗ trợ cho các thuật toán thao tác trên đối tượng được hiệu quả hơn 34 Thực Hiện Và Hiệu Chỉnh Chương Trình CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Chạy thử Lỗi và cách sửa: Lỗi thuật toán Lỗi trình tự Lỗi... các bước? 29 Tổng hợp các bước CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Bước Số lần thực hiện lệnh 1 n 2 .1 2(n -1) 2.2 n+(n -1) +…+2 = n(n +1) /2 – 1 2.2 .1 2(a -1) 2.2.2 a -1 2.3 3(n -1) 2.4 n -1 3 n TC f(n)= gán 1 2 =a 30 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cho n->vc thì f(n)->n2 Vậy độ phức tạp của thuật toán là O(n 2) Nhận xét chung: Nếu thuật toán có Một vòng lặp thì độ phức tạp của thuật toán là O(n) Hai vòng... Hai vòng lặp lồng nhau là O(n2) Ba vòng lặp lồng nhau là O(n3) vv… 31 Dữ Liệu CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Theo từ điển Tiếng Việt: số liệu, tư liệu đã có, được dựa vào để giải quyết vấn đề Tin học: Biểu diễn các thông tin cần thiết cho bài toán 32 Cấu Trúc Dữ Liệu CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cách tổ chức lưu trữ dữ liệu Các tiêu chuẩn của CTDL: Phải biểu diễn đầy đủ thông tin Phải... B2 .1: Nếu a[i]>max thì max=a[i]; B2.2: i=i +1; B3: In max Đánh giá: trường hợp dữ liệu xấu nhất (dãy tăng) Tính các bước? 27 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Tổng hợp các bước Bước 1 2 2 .1 2.2 3 f(n)= Số lần thực hiện lệnh 2 n 2(n -1) n -1 1 4n G.sử: t =10 -3ms (t.gian thực hiện 1 lệnh) TH xấu nhất: T = 4n *10 -3 Cho n->vc thì f(n)->n Độ phức tạp của thuật toán: O(n) 28 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT... Tiêu Chuẩn Của Thuật Toán CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Xác định Hữu hạn Đúng Tính hiệu quả Tính tổng quát 11 Biễu Diễn Thuật Toán CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Dạng ngôn ngữ tự nhiên Dạng lưu đồ (sơ đồ khối) Dạng mã giả Ngôn ngữ lập trình 12 Biểu Diễn Bằng Ngôn Ngữ Tự Nhiên CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT NN tự nhiên thông qua các bước được tuần tự liệt kê để biễu diễn thuật toán... 25 Đồ thị hàm số n CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT n2 log(n) a n n3 Nhận xét: Ta thấy khi n->vc thì n3 lớn rất nhanh, do đó những thuật toán có độ phức tạp là O(n3),O(2n), O(n!), O(nn) khó sử dụng được khi n rất lớn 26 Vi dụ: đánh giá giải thuật tìm số lớn nhất của n số Giải thuật: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT B0: nhập n và dãy n số nguyên a[0], a [1] ,…,a[n -1] B1: max=a[0]; i =1; B2: Trong khi i T/gian thực hiện thuật toán là T = f(n)*t Cho n-> vô cực thì f(n)->g(n); O(g(n)) gọi là độ phức tạp của thuật toán 24 Sự Phân Lớp Theo Độ Phức Tạp Của Thuật Toán CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Sử dụng ký... Dài dòng, không cấu trúc Đôi lúc khó hiểu, không diễn đạt được thuật toán 13 Lưu Đồ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Là hệ thống các nút, cung hình dạng khác nhau thể hiện các chức năng khác nhau A A Thực hiện A Gọi hàm A Vào / Ra dữ liệu Đúng Begin B Sai Điều kiện rẻ nhánh B End Nút giới hạn bắt đầu / kết thúc chương trình 14 Biểu Diễn Bằng Lưu Đồ amax = a0 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Bắt đầu Tìm... nhất trong mảng i= 1 i ... máy Tổng điểm: 10 điểm CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT CHƯƠNG TỔNG TỔNGQUAN QUAN VỀ VỀCTDL CTDLVÀ VÀTHUẬT THUẬTTOÁN TOÁN Nội Dung CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Tổng quan CTDL thuật toán Các... = n(n +1) /2 – 2.2 .1 2(a -1 ) 2.2.2 a -1 2.3 3(n -1 ) 2.4 n -1 n TC f(n)= gán =a 30 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cho n->vc f(n )-> n2 Vậy độ phức tạp thuật toán O(n 2) Nhận xét chung: Nếu thuật. .. (Operation, follow-up and Maintenance) 37 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Các kiểu liệu Kiểu liệu sở Kiểu liệu cấu trúc (structure) Kiểu liệu động (Dynamic) 38 CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Tổ chức