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

Chuong 5 thuat toan va do phuc tap thuat toan

13 86 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

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 223 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thuật toán, còn gọi là giải thuật, là một tập hợp hữu hạn hay một dãy các quy tắc chặt chẽ của các chỉ thị, phương cách hay 1 trình tự các thao tác trên một đối tượng cụ thể được xác định và định nghĩa rõ ràng cho việc hoàn tất một số sự việc từ một trạng thái ban đầu cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ dẫn đến kết quả sau cùng như đã dự đoán trước. Nói cách khác, thuật toán là một bộ các quy tắc hay quy trình cụ thể nhằm giải quyết một vấn đề nào đó trong một số bước hữu hạn, hoặc nhằm cung cấp một kết quả từ một tập hợp của các dữ kiện đưa vào.

Trang 1

Chương 5

Thuật toán và độ phức

tạp của thuật toán

Trang 2

5.1 Tổng quan về thuật toán

Thuật toán là một dãy các bước, mỗi bước mô tả chính xác các phép toán hoặc hành động cần thực hiện để giải quyết một vấn đề.

 Thuật toán tìm ước số chung lớn nhất của hai số nguyên

Input: m, n nguyên dương

Output: g, ước chung lớn nhất của m và n

Bước 1: tìm r, phần dư của phép chia m cho n.

Bước 2: Nếu r = 0 thì g := n và dừng thuật toán.

Trang 3

5.2 Các đặc trưng của thuật toán.

Input Là các giá trị cần đưa vào (có thể là rỗng) khi

cần thực hiện thuật toán

Output Là các giá trị có quan hệ hoàn toàn xác định

với các dữ liệu vào và là kết quả của sự thực hiện thuật toán

Tính xác định Mỗi bước của thuật toán cần phải

được mô tả một cách chính xác

Tính khả thi Các phép toán trong các bước của thuật

toán phải đủ đơn giản

Tính dừng Thuật toán phải dừng sau hữu hạn bước

ứng với mọi bộ dữ liệu thõa mãn điều kiện của dữ liệu vào

Trang 4

5.3 Đặc tả thuật toán

 Đặc tả thuật toán cần chỉ ra các đặc điểm sau :

1 Các đối tượng và phương tiện của thuật toán cần

sử dụng (nhập)

2 Điều kiện ràng buộc (nếu có) trên các đối tượng và phương tiện đó

3 Các sản phẩm ,kết quả (xuất)

4 Các yêu cầu trên sản phẩm, kết quả Thường xuất hiện dưới dạng quan hệ giữa kết quả và các đối tượng, phương tiện sử dụng

Trang 5

5.3 Các vấn đề liên quan đến thuật toán.

Thiết kế thuật toán: Tức là làm thế nào để tìm ra một

thuật toán cho một bài toán đặt ra

Tính đúng đắn của thuật toán:Ta cần phải chứng

minh thuật toán làm ra phải cho một kết quả đúng với mọi dữ liệu vào hợp lệ

Phân tích thuật toán: Tức là việc đánh giá độ phức

tạp của một thuật toán

Trang 6

5.4 Độ phức tạp của thuật toán

Độ phức tạp của thuật toán:là lượng thời gian và bộ

nhớ cần thiết để thực hiện thuật toán Chúng ta sẽ quan tâm đến:

- Thời gian tối thiểu để thực hiện.

- Thời gian tối đa để thực hiện thuật toán.

- Thời gian trung bình khi thực hiện thuật toán.

Trang 7

5.4 Độ phức tạp của thuật toán

Tính hiệu quả: Thông thường ta dựa vào hai tiêu

chuẩn sau:

- Thuật toán đơn giản, dễ hiểu, dễ cài đặt.

- Thuật toán sử dụng tiết kiệm nhất các nguồn tài nguyên

của máy tính và chạy nhanh nhất có thể được:

 Dung lượng không gian nhớ cần thiết để lưu trữ các dữ liệu vào, các kết quả tính toán trung gian và các kết quả của thuật toán.

 Thời gian cần thiết để thực hiện thuật toán (thời gian chạy)

Trang 8

5.4 Độ phức tạp của thuật toán

Có hai cách để đánh giá thời gian thực hiện của một thuật toán:

Trang 9

5.4 Độ phức tạp của thuật toán

Bài toán tháp Hà Nội.

Ta tính số lần thực hiện việc chuyển đĩa từ cọc này sang cọc khác (không đặt đĩa to lên đĩa nhỏ) để chuyển từ cọc A sang cọc B Gọi số đó là F(n), ta có: F(1) = 1;

F(n) = 2F(n-1) + 1; với n > 1

Một cách quy nạp, ta có F(n) = 2n-1

Với n = 64 ta có F(n) = 264 – 1 lần chuyển, giả sử mỗi lần chuyển là 1 giây, vậy ta có 5*1011 năm thực hiện

Trang 10

5.4 Độ phức tạp của thuật toán

Trang 11

5.5 Quy tắc đánh giá thời gian thuật toán

Qui tắc tổng Nếu T1(n) = O(f1(n)) và T2(n) = O(f2(n))

thì T1(n) + T2(n) = O(max{f1(n),f2(n)})

Thời gian thực hiện lệnh đơn: gán (không chưa lời

gọi hàm), đọc, viết, goto là O(1)

Thời gian thực hiện câu lênh phức được xác định

qua các câu lệnh thành phần

Lệnh if Ví dụ if E then S1 else S2 Và giả sử thời

gian thực hiện các lện S1 và S2 là O(f1(n)) và O(f2(n)) Khi đó thời gian thực hiện lệnh if là O(max{f1(n),f2(n)})

Trang 12

5.5 Quy tắc đánh giá thời gian thuật toán

Lệnh case Được đánh giá như lệnh if.

Lệnh while

Ví dụ: while E do S Giả sử thời gian thực hiện của lệnh S là O(f(n)) Và giả sử g(n) là số tối đa lần thực hiện lệnh S Thì khi đó thời gian thực hiện lệnh while là: O(f(n))g(n)

Lệnh repeat Được đánh giá như lệnh while.

Lệnh for Được đánh giá như lệnh repeat, while.

Ngày đăng: 11/01/2020, 21:50

TỪ KHÓA LIÊN QUAN

w