Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
0,97 MB
Nội dung
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT TS Đặng Xuân Thọ Trường Đại học Sư phạm Hà Nội • Full name: TS Đặng Xuân Thọ • Mobile: 091-2629-383 • Email: thodx@hnue.edu.vn • Website: http://fit.hnue.edu.vn/~thodx/ Cấu trúc liệu giải thuật Support GIỚI THIỆU THIẾT KẾ VÀ PHÂN TÍCH GIẢI THUẬT ĐỆ QUY VÀ GIẢI THUẬT ĐỆ QUY DANH SÁCH MÓC NỐI STACK VÀ QUEUE CẤU TRÚC DỮ LIỆU KIỂU CÂY CÁC THUẬT TỐN SẮP XẾP CÁC THUẬT TỐN TÌM KIẾM Cấu trúc liệu giải thuật Cấu trúc liệu giải thuật Cấu trúc liệu giải thuật CHƯƠNG THIẾT KẾ VÀ PHÂN TÍCH GIẢI THUẬT • Thiết kế giải thuật • Sử dụng chiến thuật nào? • Phân tích giải thuật • Thế phân tích tính đắn giải thuật? • Phân tích tính đơn giản giải thuật? • Đánh giá thời gian thực giải thuật • Tại cần đánh giá thời gian thực hiện? • Đánh giá thời gian thực nào? Cấu trúc liệu giải thuật Mục tiêu • Một chương trình tính tốn chia làm số bước: • Nhập liệu vào • Khởi tạo liệu riêng • Xử lý liệu • Xuất liệu Cấu trúc liệu giải thuật Thiết kế giải thuật Thiết kế giải thuật CHIẾN THUẬT “CHIA ĐỂ TRỊ” Cấu trúc liệu giải thuật • Chia nhỏ toán: Nếu gọi toán modul ta chia modul thành modul lại chia modul thành modul nhỏ ta modul biết cách giải • Giám đốc yêu cầu: “Dùng máy tính để quản lý hồ sơ lương nhân viên Hàng tháng phải lập báo cáo tổng hợp tiền lương lên Ban giám đốc.” Cấu trúc liệu giải thuật Ví dụ chiến thuật “chia để trị” Xác định u cầu tốn: Tìm hiển thị hồ sơ nhân viên Cập nhật thông tin nhân viên cho trước In tổng hợp chứa thông tin thời Giải thuật cần thực ba nhiệm vụ chính: Đọc thơng tin hồ sơ từ ổ đĩa Xử lý thơng tin (tìm kiếm, thêm, sửa, xóa ) Sao lưu lại vào ổ đĩa Cấu trúc liệu giải thuật Ví dụ chiến thuật “chia để trị” Ví dụ chiến thuật “chia để trị” Đọc hồ sơ Xử lý hồ sơ Ghi hồ sơ Tìm hồ sơ Cập nhật hồ sơ In tổng hợp Tìm kiếm Hiển thị Tìm kiếm Cập nhật Cấu trúc liệu giải thuật Quản lý lương nhân viên 10 ĐÁNH GIÁ THỜI GIAN THỰC HIỆN CỦA GIẢI THUẬT Đánh giá thời gian thực giải thuật • Thời gian thực giải thuật phụ thuộc vào nhiều yếu tố: • Trước hết phụ thuộc vào độ lớn liệu đầu vào • Ngồi T cịn phụ thuộc vào: • Máy móc thiết bị • Ngơn ngữ lập trình • Tuy nhiên yếu tố không đồng dựa vào chúng xác lập T(n) • Vậy đơn vị T(n) tính gì? Cấu trúc liệu giải thuật • Thời gian hàm n (kích thước input): T = T(n) 22 • Vậy đơn vị T(n) tính ? • Khơng thể tính đơn vị cụ thể mà tính bằng: Số lần thực lệnh giải thuật • Cách tính tính nhanh hay chậm giải thuật hay khơng? • Giải thuật có thời gian thực tỉ lệ với n • Giải thuật có thời gian thực tỉ lệ với n2 • Với n lớn giải thuật nhanh giải thuật • T mà ta đánh gọi độ phức tạp tính tốn giải thuật • Ở giải thuật ta nói giải thuật có độ phức tạp tính tốn cấp n kí hiệu T(n) = O(n) • Ở giải thuật T(n) = O(n2) Cấu trúc liệu giải thuật Đánh giá thời gian thực giải thuật 23 • Định nghĩa: giả thuật T gọi có độ phức tạp tính tốn cấp g(n) tồn số dương N0 số nguyên dương C > cho ta ln có T(n) C ∙ g(n) n N • Và ta kí hiệu T(n) = O(g(n)) • Hàm g(n) thường chọn là: log n; n; n log n; n ; n ; n ; n!; n n Hàm đa thức Cấu trúc liệu giải thuật Đánh giá thời gian thực giải thuật Hàm mũ 24 log n n n log n n2 n3 2n 1 2 4 16 64 16 24 64 512 256 16 64 256 4096 65536 32 160 1024 32768 4,294,967,296 • Rõ ràng thời gian thực giải thuật tăng với tốc độ hàm mũ độ lớn tăng nhanh Cấu trúc liệu giải thuật Đánh giá thời gian thực giải thuật 25 • Tính TBC dãy số đọc vào từ bàn phím Nhập vào số n; Các lệnh Số lần thực Cho S:=0; d:=1; 1 While d