1. Trang chủ
  2. » Công Nghệ Thông Tin

CẤU TRÚC DỮ LIỆU & GIẢI THUẬT docx

21 358 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Bài giảng Cấu trúc dữ liệu 1 CẤU TRÚC DỮ LIỆU & GIẢI THUẬT Lê Thị Diễm Bộ môn Tin học ứng dụng Chương 1: Mở đầu 2 Chương 1 Mở đầu Chương 1: Mở đầu 3 NỘI DUNG • Tiếp cận từ bài toán đến chương trình • Kiểu dữ liệu (Data Type) • Kiểu dữ liệu trừu tượng (Abstract Data Type) • Cấu trúc dữ liệu (Data Structure) • Đánh giá độ phức tạp của giải thuật Chương 1: Mở đầu 4 Từ bài toán đến chương trình • Mô hình hóa bài toán thực tế thành bài toán giải quyết trên máy tính  xây dựng cấu trúc dữ liệu (CTDL) • Xác định các thao tác xử lý  xây dựng giải thuật • Ngôn ngữ giả và tinh chế từng bước (Pseudo language and stepwise refinement) • Cài đặt chương trình giải quyết bài toán Chương 1: Mở đầu 5 Giải thuật (GT) • Là 1 chuỗi hữu hạn các thao tác để giải 1 bài toán nào đó • Các tính chất quan trọng của giải thuật là: – Hữu hạn (finiteness): giải thuật phải luôn luôn kết thúc sau một số hữu hạn bước. – Xác định (definiteness): mỗi bước của GT phải được xác định rõ ràng và phải được thực hiện chính xác, nhất quán. – Hiệu quả (effectiveness): các thao tác trong GT phải được thực hiện trong một lượng thời gian hữu hạn (đơn giản, dễ hiểu, dễ lập trình, thực hiện nhanh). Chương 1: Mở đầu 6 Kiểu dữ liệu (Data Type) • Khái niệm: là một tập hợp các giá trị và một tập hợp các phép toán trên các giá trị đó – Ví dụ: kiểu int là tập hợp các số nguyên có giá trị -32768  32767 cùng các phép toán cộng, trừ, nhân, chia, %, • Các thuộc tính: 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ử tác động lên kiểu DL Chương 1: Mở đầu 7 Kiểu dữ liệu trừu tượng (ADT: Abstract Data Type) • là một mô hình toán học cùng với một tập hợp các phép toán trên nó • là kiểu dữ liệu do ta định nghĩa ở mức khái niệm, chưa được cài đặt cụ thể bằng một ngôn ngữ lập trình  Che lấp những chi tiết phức tạp trong chương trình Chương 1: Mở đầu 8 Cấu trúc dữ liệu (Data Structure) • Khi cài đặt một ADT, ta dùng – các CTDL phù hợp có trong ngôn ngữ lập trình, hoặc – cấu trúc phức hợp được xây dựng lên từ các kiểu cơ bản của ngôn ngữ lập trình • Cấu trúc dữ liệu = cách thức tổ chức dữ liệu • Cấu trúc dữ liệu + Giải thuật = Chương trình Chương 1: Mở đầu 9 Các tiêu chuẩn đánh giá CTDL • Phản ánh đúng thực tế – Là tiêu chuẩn quan trọng – Quyết định tính đúng đắn của bài toán – Phải chọn CTDL lưu trữ thể hiện chính xác đối tượng thực tế. Chương 1: Mở đầu 10 Các tiêu chuẩn đánh giá CTDL • Phù hợp với các thao tác – Cần chú ý đến thao tác nào được sử dụng nhiều nhất để lựa chọn CTDL cho phù hợp – Làm tăng tính hiệu quả: các thuật toán đơn giản, tự nhiên, đạt hiệu quả cao về tốc độ • Tiết kiệm tài nguyên hệ thống – chỉ nên sử dụng tài nguyên hệ thống vừa đủ để đảm nhiệm chức năng của nó. [...]... giá độ phức tạp GT (1) • Tại sao phải phân tích đánh giá giải thuật? – Có nhiều giải thuật khác nhau để giải quyết 1 bài toán => lựa chọn 1 giải thuật tốt (nhất) • Đánh giá giải thuật =>chi phí cần dùng để thực hiện nó thông qua việc sử dụng tài nguyên – tài nguyên: bộ nhớ, thời gian sử dụng CPU,… – thông thường nhất là thời gian cần thiểt để giải quyết vấn đề (thời gian thực hiện chương trình) Chương... cài đặt giải thuật, rồi chọn các bộ dữ liệu thử nghiệm – nhược điểm: chịu sự hạn chế của ngôn ngữ lập trình cài đặt, trình độ của người lập trình, khó khăn và tốn chi phí trong việc chọn các bộ dữ liệu thử đặc trưng,… • Tìm những phương pháp đánh giá giải thuật hình thức hơn, ít phụ thuộc môi trường cũng như phần cứng hơn Chương 1: M đ u 13 Đánh giá độ phức tạp GT (4) – Phương pháp đánh giá giải thuật. .. vấn đề chúng ta giải quyết có kích thước tự nhiên n (thường là số lượng dữ liệu được xử lý), • Tài nguyên cần dùng được mô tả như 1 hàm số theo n (T(n)) – Nghĩa là: Thời gian thực hiện của chương trình là 1 hàm của kích thước dữ liệu vào ký hiệu T(n) trong đó n là kích thước (độ lớn) của dữ liệu vào • T(n) ≥ 0 ∀ n ≥ 0 Chương 1: M đ u 12 Đánh giá độ phức tạp GT (3) • Có thể đánh giá giải thuật bằng phương... mũ cao nhất Chương 1: M đ u 14 Đánh giá độ phức tạp GT (5) • Ta gọi tỷ suất tăng của hàm thời gian là độ phức tạp thời gian của GT (độ phức tạp của thuật toán) • Cho thuật toán A, có thời gian thực hiện là T(n), nếu T(n) có tỷ suất tăng là f(n) thì ta nói thuật toán A có độ phức tạp là f(n) và ký hiệu T(n) là O(f(n)) (đọc là “ô lớn của f(n)”) và viết T(n)=O(f(n)) • Hay: Độ phức tạp của GT là 1 hàm chặn... gt=1; lt=lt*x; for(int j = 1;j . lập trình, hoặc – cấu trúc phức hợp được xây dựng lên từ các kiểu cơ bản của ngôn ngữ lập trình • Cấu trúc dữ liệu = cách thức tổ chức dữ liệu • Cấu trúc dữ liệu + Giải thuật = Chương trình Chương. Bài giảng Cấu trúc dữ liệu 1 CẤU TRÚC DỮ LIỆU & GIẢI THUẬT Lê Thị Diễm Bộ môn Tin học ứng dụng Chương 1: Mở đầu 2 Chương 1 Mở. Tại sao phải phân tích đánh giá giải thuật? – Có nhiều giải thuật khác nhau để giải quyết 1 bài toán => lựa chọn 1 giải thuật tốt (nhất). • Đánh giá giải thuật =>chi phí cần dùng để thực

Ngày đăng: 06/08/2014, 02:20

TỪ KHÓA LIÊN QUAN

w