Kiến trúc máy tính - Bài 4
Số trang: 36
Loại file: ppt
Dung lượng: 766.00 KB
Lượt xem: 8
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Phân tích các thuật toán(Analysis of Algorithms)Phân tích thuật toánThuật toán là một qui trình thực hiện từng bước, từng bước giải quyết một vấn đề trong một khoảng thời
Nội dung trích xuất từ tài liệu:
Kiến trúc máy tính - Bài 4Bài 4. Phân tích các thuật toán (Analysis of Algorithms) Phân tích thuật toán10/21/11 1 Thuật toán là một qui trình thực hiện từng bước, từng bước giải quyết một vấn đề trong một khoảng thời gian hữu hạn. Phân tích thuật toán10/21/11 2Các khía cạnh cần phân tích Bộ nhớ (Space) Xác định tổng dung lượng bộ nhớ cần thiết để lưu trữ toàn bộ dữ liệu đầu vào, trung gian và kết quả đầu ra. Ví dụ: Sắp xếp một dãy n phần t ử. Bộ nhớ cần cho bài toán là: Bộ nhớ lưu biến n, lưu n phần tử của dãy, lưu các biến i, j, tg (nếu là thuật toán Bubble Sort) Thời gian chạy của thuật toán (Running time) Phân tích thuật toán10/21/11 3 Thời gian chạy (Running time) Hầu hết các thuật toán thực hiện biến đổi các đối tượng đầu vào thành các đối tượng đầu ra Thời gian chạy của thuật được đặc trưng bởi kích thước của dữ liệu đầu vào Chúng ta thường đi đánh giá thời gian chạy của thuật toán trong 3 trường hợp: xấu nhất, trung bình và tốt nhất. Thời gian chạy trung bình của thuật toán thường rất khó xác định Chung ta tập chung vào phân tích thời gian chạy trong trường hợp xấu nhất (do dễ phân tích) Phân tích thuật toán10/21/11 4Phương pháp đánh giá Phương pháp thực nghiệm1. Phương pháp phân tích lý thuyết2. Phân tích thuật toán10/21/11 5Phương pháp thực nghiệmCác bước thực hiện: Viết một chương trình thể hiện thuật toán Chạy chương trình với các bộ dữ liệu đầu vào có kích thước khác nhau và tổng hợp lại. Sử dụng một hàm như một đồng hồ để lấy chính xác thời gian chạy của thuật toán. Vẽ đồ thị biểu diễn kết quả Phân tích thuật toán10/21/11 6Hạn chế của phương phápthực nghiệm Cần phải cài đặt thuật toán bằng một ngôn ngữ lập1. trình, nhưng một số thuật toán việc cài đặt là khó. Kết quả thu được không thể biểu thị cho nh ững bộ dữ2. liệu đầu vào chưa được thực nghiệm Để so sánh giữa hai thuật toán ta cần cài đặt trên các3. máy có cấu hình giống nhau cả về phần cứng/ môi trường phần mềm. Phân tích thuật toán10/21/11 7Phương pháp phân tích lý thuyết Sử dụng thuật toán được mô tả ở mức cao (giả mã) thay cho chương trình cài đặt. Mô tả thời gian chạy của thuật toán bằng một hàm phụ thuộc vào kích thước của dữ liệu đầu vào, n. Tính toán tất cả các khả năng của dữ liệu đầu vào Cho phép chúng ta đánh giá tốc độ của thuật toán không phụ thuộc vào phần cứng/môi trường phần mềm. Phân tích thuật toán10/21/11 8Giả mã (Pseudocode) Mô tả thuật toán ở mức trừu Ví dụ thuật toán tìm Max các tượng cao phần tử của một mảng Nhiều cấu trúc hơn ngôn Algorithm arrayMax(A,n) ngữ tự nhiên Input: Mảng A có n số nguyên Kém chi tiết hơn chương Output: Giá trị lớn nhất của A trình Max ← A[0] Sử dụng nhiều ký hiệu để mô tả for i ← 1 to n-1 do if A[i] > Max then Max ← A[i] return Max Phân tích thuật toán10/21/11 9n2 Những chi tiết mô tả PseudoCode Gọi hàm, phương thức Cấu trúc điểu khiển Biến.Phươngthức([Danh sách If then else đối]) while do Trả lại giá trị cho hàm ...
Nội dung trích xuất từ tài liệu:
Kiến trúc máy tính - Bài 4Bài 4. Phân tích các thuật toán (Analysis of Algorithms) Phân tích thuật toán10/21/11 1 Thuật toán là một qui trình thực hiện từng bước, từng bước giải quyết một vấn đề trong một khoảng thời gian hữu hạn. Phân tích thuật toán10/21/11 2Các khía cạnh cần phân tích Bộ nhớ (Space) Xác định tổng dung lượng bộ nhớ cần thiết để lưu trữ toàn bộ dữ liệu đầu vào, trung gian và kết quả đầu ra. Ví dụ: Sắp xếp một dãy n phần t ử. Bộ nhớ cần cho bài toán là: Bộ nhớ lưu biến n, lưu n phần tử của dãy, lưu các biến i, j, tg (nếu là thuật toán Bubble Sort) Thời gian chạy của thuật toán (Running time) Phân tích thuật toán10/21/11 3 Thời gian chạy (Running time) Hầu hết các thuật toán thực hiện biến đổi các đối tượng đầu vào thành các đối tượng đầu ra Thời gian chạy của thuật được đặc trưng bởi kích thước của dữ liệu đầu vào Chúng ta thường đi đánh giá thời gian chạy của thuật toán trong 3 trường hợp: xấu nhất, trung bình và tốt nhất. Thời gian chạy trung bình của thuật toán thường rất khó xác định Chung ta tập chung vào phân tích thời gian chạy trong trường hợp xấu nhất (do dễ phân tích) Phân tích thuật toán10/21/11 4Phương pháp đánh giá Phương pháp thực nghiệm1. Phương pháp phân tích lý thuyết2. Phân tích thuật toán10/21/11 5Phương pháp thực nghiệmCác bước thực hiện: Viết một chương trình thể hiện thuật toán Chạy chương trình với các bộ dữ liệu đầu vào có kích thước khác nhau và tổng hợp lại. Sử dụng một hàm như một đồng hồ để lấy chính xác thời gian chạy của thuật toán. Vẽ đồ thị biểu diễn kết quả Phân tích thuật toán10/21/11 6Hạn chế của phương phápthực nghiệm Cần phải cài đặt thuật toán bằng một ngôn ngữ lập1. trình, nhưng một số thuật toán việc cài đặt là khó. Kết quả thu được không thể biểu thị cho nh ững bộ dữ2. liệu đầu vào chưa được thực nghiệm Để so sánh giữa hai thuật toán ta cần cài đặt trên các3. máy có cấu hình giống nhau cả về phần cứng/ môi trường phần mềm. Phân tích thuật toán10/21/11 7Phương pháp phân tích lý thuyết Sử dụng thuật toán được mô tả ở mức cao (giả mã) thay cho chương trình cài đặt. Mô tả thời gian chạy của thuật toán bằng một hàm phụ thuộc vào kích thước của dữ liệu đầu vào, n. Tính toán tất cả các khả năng của dữ liệu đầu vào Cho phép chúng ta đánh giá tốc độ của thuật toán không phụ thuộc vào phần cứng/môi trường phần mềm. Phân tích thuật toán10/21/11 8Giả mã (Pseudocode) Mô tả thuật toán ở mức trừu Ví dụ thuật toán tìm Max các tượng cao phần tử của một mảng Nhiều cấu trúc hơn ngôn Algorithm arrayMax(A,n) ngữ tự nhiên Input: Mảng A có n số nguyên Kém chi tiết hơn chương Output: Giá trị lớn nhất của A trình Max ← A[0] Sử dụng nhiều ký hiệu để mô tả for i ← 1 to n-1 do if A[i] > Max then Max ← A[i] return Max Phân tích thuật toán10/21/11 9n2 Những chi tiết mô tả PseudoCode Gọi hàm, phương thức Cấu trúc điểu khiển Biến.Phươngthức([Danh sách If then else đối]) while do Trả lại giá trị cho hàm ...
Tìm kiếm theo từ khóa liên quan:
Kiến trúc máy tính cấu trúc dữ liệu lập trình máy tính quản trị dữ liệu hệ thống máy tínhGợi ý tài liệu 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 315 0 0 -
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 307 1 0 -
67 trang 298 1 0
-
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 281 2 0 -
Bài giảng Tin học lớp 11 bài 1: Giới thiệu ngôn ngữ lập trình C#
15 trang 234 0 0 -
Giáo trình Kiến trúc máy tính và quản lý hệ thống máy tính: Phần 1 - Trường ĐH Thái Bình
119 trang 231 0 0 -
105 trang 201 0 0
-
84 trang 199 2 0
-
15 trang 198 0 0
-
Bài giảng Nguyên lý hệ điều hành (Bài giảng tuần 1) - Nguyễn Hải Châu
6 trang 177 0 0