Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
1,42 MB
Nội dung
Bài 1: TỔNG QUAN VỀ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Mục tiêu học hơm Tìm hiểu khái niệm cấu trúc liệu Dữ liệu, Cấu trúc liệu Các kiểu cấu trúc liệu Tìm hiểu khái niệm giải thuật (thuật toán, thuật giải) Khái niệm giải thuật Biểu diễn giải thuật Độ phức tạp giải thuật Mối liên hệ cấu trúc liệu giải thuật Slide - Tổng quan CTDL GT Dữ liệu Giải thuật Tại sử dụng máy tính để xử lý liệu Nhanh hơn, xác Giải nhiều tốn địi hỏi khối lượng tính tốn cực lớn, toán phức tạp với khối lượng liệu lớn Phương pháp? Nhờ vào thuật tốn hiệu quả, thơng minh -> chi phí thấp Nhờ vào nâng cấp cấu hình máy -> chi phí cao Slide - Tổng quan CTDL GT Khái niệm Dữ liệu Trong tin học: Dữ liệu để biểu diễn thơng tin cần thiết cho tốn Các liệu máy tính gồm: liệu đầu vào, liệu trung gian, liệu đầu Slide - Tổng quan CTDL GT Cấu trúc liệu gì? Hình sách chưa tổ chức, xếp Slide - Tổng quan CTDL GT Hình sách tổ chức, xếp Một ví dụ Cấu trúc Hình số nguyên chưa tổ chức Slide - Tổng quan CTDL GT Hình số nguyên tổ chức mảng Khái niệm Cấu trúc liệu Cấu trúc liệu gì? Cấu trúc liệu (data structure) phương thức cụ thể để lưu trữ tổ chức liệu máy tính để việc xử lý hiệu Slide - Tổng quan CTDL GT Các kiểu cấu trúc liệu Dữ liệu khơng có cấu trúc (kiểu liệu đơn hay gọi kiểu liệu sở): Mỗi đối tượng liệu phần tử đơn lẻ Ví dụ: Integer, Char, Boolean,… Dữ liệu có cấu trúc: Được cấu thành phần tử liệu sở Ví dụ: Mảng (array), chuỗi (string), danh sách (collection), ghi (record), đối tượng (object) Slide - Tổng quan CTDL GT Kiểu liệu sở Ví dụ: số kiểu liệu sở định nghĩa Visual Basic: Tên kiểu Byte Kích thước byte Miền giá trị -> 255 (không dấu) Boolean Tùy thuộc vào tảng (thường byte) True False Integer byte -2,147,483,648 -> 2,147,483,647 (có dấu) Long byte -9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807 (9.2 E+18 †) (có dấu) Date byte 0:00:00 ngày 1/1/0001 tới 11:59:59 ngày 31/12/9999 Char byte -> 65535 (không dấu) Slide - Tổng quan CTDL GT Kiểu liệu có cấu trúc Kiểu chuỗi kí tự: Ví dụ: chuỗi kí tự “BOOKS” Slide - Tổng quan CTDL GT 10 Ví dụ Một vài nhận xét: Giải thuật có tính xác: Các bước giải thuật mơ tả xác Giải thuật có tính nhất: với đầu vào xác định, kết bước giải thuật xác định Giải thuật có tính hữu hạn: Giải thuật kết thúc sau bước đưa lời giải toán Giải thuật có tính tổng qt: ln đưa giá trị số lớn số Slide - Tổng quan CTDL GT 31 Độ phức tạp giải thuật Một thuật tốn hiệu quả: Chi phí cần sử dụng tài nguyên thấp: Bộ nhớ, thời gian sử dụng CPU, … Phương pháp đánh giá độ phức tạp giải thuật: Dựa thời gian để thực giải thuật đến kết Dựa số phép toán để thực giải thuật Slide - Tổng quan CTDL GT 32 Tính thời gian thực giải thuật Thời gian thực giải thuật hồn tồn đo cách lập trình Ví dụ cài đặt lớp Timing VB.Net: Cho phép tính thời gian thực đoạn code chạy chương trình Lớp Timing có thành phần liệu: startingTime: lưu trữ thời gian bắt đầu thực đoạn code duration: thời gian kết thúc đoạn code Thời gian thực = startingTime - duration Slide - Tổng quan CTDL GT 33 Tính thời gian thực giải thuật startingTime Public Class Timing Private startingTime As TimeSpan Private duration As TimeSpan Public Sub New() startingTime = New TimeSpan(0) duration = New TimeSpan(0) End Sub duration Slide - Tổng quan CTDL GT End Class 34 Tính số phép tốn để thực giải thuật n - Kích thước đầu vào liệu Mơ tả độ phức tạp thuật tốn qua hàm O(n) Hai nguyên tắc đánh giá: Nguyên tắc cộng Nguyên tắc nhân Slide - Tổng quan CTDL GT 35 Tính số phép tốn để thực giải thuật Ví dụ: i=1 i=1 loop ( i thời gian thực toán nhanh Slide - Tổng quan CTDL GT Họ tên SĐT Trần Xuân A 098123456 Vũ Thị A 091662288 Quách Thái A 090333999 Nguyễn Văn A 093886668 Họ tên SĐT Trần Xuân B 012321432 Vũ Thị B 094325325 Quách Thái B 091987412 Nguyễn Văn B 096666666 42 Hướng tiếp cận CTDL> mơn Hướng tiếp cận thơng thường: tìm hiểu mặt lý thuyết chi tiết cài đặt cấu trúc liệu giải thuật Điểm mạnh: hiểu sâu chất, xây dựng CTDL> cho tốn phức tạp Điểm yếu: khó hiểu, tính ứng dụng thấp địi hỏi sinh viên nắm vững lý thuyết sâu công cụ lập trình Hướng tiếp cận mới: Điểm mạnh: Dễ hiểu khái niệm CTDL> Tận dụng CTDL phổ biến API ngơn ngữ lập trình cài đặt sẵn Áp dụng vào ứng dụng Điểm yếu: Phải gắn với ngơn ngữ lập trình cụ thể Hạn chế việc tự cài đặt CTDL> Slide - Tổng quan CTDL GT 43 Hướng tiếp cận CTDL> môn Trong thực tế, CTDL có sẵn API ngơn ngữ lập trình đáp ứng đến 90% nhu cầu lập trình với CTDL> thực tế Mơn tiếp cận CTDL> theo hướng thực tiễn, vừa giải thích lý thuyết, hướng dẫn cài đặt, vừa hướng dẫn sử dụng API có sẵn Cụ thể, CTDL API ngơn ngữ lập trình VB.NET (bản 2008) sử dụng để minh họa cho môn Slide - Tổng quan CTDL GT 44 Tổng kết Cấu trúc liệu cách tổ chức liệu thành cấu trúc mảng, chuỗi, file… Giải thuật tập hữu hạn có thứ tự bước tác động lên liệu để sau số hữu hạn lần thực cho ta kết Việc lựa chọn cấu trúc liệu giải thuật cho toán quan trọng Slide - Tổng quan CTDL GT 45 ... khái niệm cấu trúc liệu Dữ liệu, Cấu trúc liệu Các kiểu cấu trúc liệu Tìm hiểu khái niệm giải thuật (thuật toán, thuật giải) Khái niệm giải thuật Biểu diễn giải thuật Độ phức tạp giải thuật Mối... Slide - Tổng quan CTDL GT 12 Ví dụ cấu trúc liệu Nếu gộp liệu hàng lại thành cấu trúc ta có cấu trúc ghi (Tồn bảng mảng ghi) sau (cấu trúc kiểu file): Nguyễn An | 18 | 1A | 10 Trần B | 19 | 2A... Slide - Tổng quan CTDL GT 16 Khái niệm giải thuật Là tập hữu hạn có thứ tự bước tác động lên liệu để sau số hữu hạn lần thực cho ta kết DỮ LIỆU ĐẦU VÀO Slide - Tổng quan CTDL GT GIẢI THUẬT DỮ LIỆU