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

Bài giảng cấu trúc dữ liệu và giải thuật chương 1 ths nguyễn thị khiêm hòa

65 226 1

Đ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 65
Dung lượng 814,59 KB

Nội dung

Chương 1: Tổng quan Giảng viên: Ths Nguyễn Thị Khiêm Hòa Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM Nội dung    Cấu trúc liệu thuật toán  Thuật toán đặc trưng thuật toán  Diễn đạt thuật toán  Kiểu liệu, ADT, cấu trúc liệu Phân tích thiết kế thuật toán  Thiết kế thuật toán  Phân tích thuật toán Một số lớp thuật toán Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM Mục tiêu  Tìm hiểu nội dung:  Thiết kế phân tích thuật toán  Hiểu rõ kiểu liệu, kiểu liệu trừu tượng, cấu trúc liệu  Đánh giá độ phức tạp thuật toán Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM Giải toán máy tính  Giải toán:    Mục tiêu Phương pháp Giải toán tin học cần phải:   Tổ chức biểu diễn đối tượng thực tế Xây dựng trình tự thao tác xử lý đối tượng liệu Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM Giải toán máy tính Cấu trúc liệu + Thuật toán Chương trình Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM Kiểu liệu trừu tượng _ADT  Kiểu liệu  Kiểu liệu trừu tượng  ADT - abstract data type  Kiểu liệu trừu tượng: T =  V: Values - miền giá trị  O: Operators – thao tác Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM Cấu trúc liệu  Cấu trúc liệu (Data structure): Cách tổ chức liệu cho toán  Có số cấu trúc liệu riêng ngôn ngữ lập trình gọi CTDL tiền định Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM Đánh giá cấu trúc liệu  Phản ánh thực tế  Phù hợp với thao tác  Tiết kiệm tài nguyên hệ thống Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM Cấu trúc lưu trữ (trong/ngoài)   Cách biểu diễn tối ưu cấu trúc liệu nhớ (trong/ngoài) máy tính gọi cấu trúc lưu trữ Có nhiều cấu trúc lưu trữ khác cho cấu trúc liệu Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM Thuật toán Định nghĩa  Lý thuyết thuật toán quan tâm đến vấn đề sau:     Giải thuật toán Tối ưu hóa thuật toán Triển khai thuật toán Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 10 Một số ví dụ Sum=0 for (i=0;i Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 56 Phân tích hàm đệ quy  Sử dụng phép T(n-1) = T(n-2) + b, T(n-2) = T(n-3) + b, , ta có T(n) = T(n-1) + b = T(n-2) + 2b = T(n-3) + 3b = T(1) + (n-1)b = a + (n-1)b Từ đó, ta suy T(n) = O(n) Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 57 Phân tích hàm đệ quy  Gọi T(n) thời gian chạy hàm đệ quy F  Khi đó, thời gian chạy lời gọi hàm hàm F T(m) (với m < n)  Trước hết, phải đánh giá thời gian chạy hàm F liệu nhỏ n = 1, giả sử T(1) = a (điều kiện dừng)  Sau đó, đánh giá thời gian chạy câu lệnh thân hàm F  Tìm quan hệ đệ quy biểu diễn thời gian chạy hàm F thông qua lời gọi hàm Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 58 Sự phân lớp giải thuật  Độ phức tạp  O(1) độ phức tạp số  O(logn) độ phức tạp logarit  O(n) độ phức tạp tuyến tính  O(nlogn) độ phức tạp nlogn  O(nb) độ phức tạp đa thức  O(bn) độ phức tạp mũ  O(n!) độ phức tạp giai thừa Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 59 Sự phân lớp giải thuật Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 60 Đánh giá độ phức tạp ba trường hợp  Ví dụ: Thuật toán tìm kiếm int sequenceSearch(int x, int a[], int n) { for (int i=0;i[...]... Cấu trúc dữ liệu và thuật toán  Đối tượng xử lý của thuật toán chính là dữ liệu  Với một cấu trúc dữ liệu, sẽ có những thuật toán tương ứng  Thuật toán thường thay đổi khi cấu trúc dữ liệu thay đổi Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 18 Thiết kế thuật toán  Từ bài toán đến chương trình Lập trình Thiết kế Bài toán thực tế Giải thuật Kỹ thuật thiết kế giải thuật: Chia để trị,... trong 2 số còn lại để vào vị trí thứ n -1 Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 22 Thiết kế thuật toán Tinh chế 1: For (i= 1, i min thì min = x[j] với j [i +1, n] - đổi chổ x[i] và min } Khoa Công Nghệ... i +1, quay lại bước 4 Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 16 Diễn đạt thuật toán Ví dụ 3: Tìm phần tử lớn nhất trong mảng A  Thuật toán Tim_max(A, n) Input: Mảng A, gồm n số nguyên Output: Giá trị lớn nhất của A Max  A[0] for i  1 to n  1 do if A[i]  Max then Max  A[i] return Max Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 17 Mối quan hệ giữa Cấu trúc dữ liệu. .. i  bước 6  Bước 5: Gán i  i +1, trở lại bước 4  Bước 6:  Nếu i > √n  n nguyên tố  dừng  Ngược lại, n không là nguyên tố  dừng Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 15 Diễn đạt thuật toán Ví dụ 2: Thuật toán tìm phần tử thứ n của dãy số Fibonacci  Bước 1: Nhập n  Bước 2: Nếu n =1 hay n=2  fn =1  dừng  Bước 3: Nếu n > 2, gán a 1, b 1, i 1  Bước 4: Gán ca+b, ab, bc... hàng TP.HCM 25 Phân tích thuật toán   Giải quyết bài toán  Phải đứng trước việc lựa chọn giải thuật nào?  Dựa trên cơ sở nào để lựa chọn ? Có hai mục tiêu trái ngược  Thuật toán dễ hiểu, cài đặt và gỡ lỗi  Thuật toán sử dụng hiệu quả tài nguyên máy tính, đặc biệt chạy càng nhanh càng tốt Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 26 Đánh giá độ phức tạp thuật toán  Độ phức tạp... toán  Độ phức tạp không gian (Space complexity) Dung lượng bộ nhớ mà thuật toán đòi hỏi  Độ phức tạp thời gian (Time complexity) Thời gian thực hiện thuật toán Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 27 Phân tích thời gian thực hiện thuật toán  Thời gian thực hiện giải thuật phụ thuộc vào các yếu tố sau:  Dữ liệu vào  Tốc độ thực hiện các phép toán của máy tính (phần cứng máy tính)... hiệu biểu diễn thuật toán bằng sơ đồ khối Nút thao tác Nút điều khiển: trong đó ghi điều kiện cần kiểm tra trong quá trình tính toán Nút khởi đầu ,kết thúc Cung Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 13 Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 14 Diễn đạt thuật toán Ví dụ 1: Thuật toán xác định n là số nguyên tố  Bước 1: Nhập n  Bước 2: Nếu n ≤ 1  n ko nguyên... thiết kế giải thuật: Chia để trị, quy hoạch động, back tracking v.v… #include … Chương trình •Ngôn ngữ lập trình: •PASCAL, C/C++, JAVA, … Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 19 Thiết kế thuật toán  Module hoá và việc giải quyết bài toán  Chiến thuật chia để trị (divide-conquer):  Để thực hiện chiến thuật này, thường có hai cách thiết kế:  Từ trên xuống (Top-Down Design)  Tinh... Thiết kế thuật toán  Tinh chỉnh từng bước:  Biểu diễn ý tưởng bằng ngôn ngữ tự nhiên  Chi tiết hóa các công việc nhỏ hơn dùng mã giả rồi đến ngôn ngữ lập trình Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 21 Thiết kế thuật toán  Ví dụ: Bài toán sắp xếp một dãy n số, theo thứ tự tăng dần  Chọn số bé nhất trong n số để vào vị trí thứ 1  Chọn số bé nhất trong n -1 số còn lại để vào vị.. .Thuật toán  Đặc trưng của thuật toán Tính  Tính  Tính  Tính  Tính  xác định hữu hạn (Tính dừng) đúng đắn phổ dụng khả thi Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 11 Diễn đạt thuật toán  Dạng lưu đồ (sơ đồ khối)  Dạng ngôn ngữ tự nhiên (Ngôn ngữ liệt kê từng bước)  Ngôn ngữ lập trình  Dạng mã giả Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 12 Diễn đạt thuật ... Tin - Trường Đại học Ngân hàng TP.HCM 17 Mối quan hệ Cấu trúc liệu thuật toán  Đối tượng xử lý thuật toán liệu  Với cấu trúc liệu, có thuật toán tương ứng  Thuật toán thường thay đổi cấu trúc. .. dung    Cấu trúc liệu thuật toán  Thuật toán đặc trưng thuật toán  Diễn đạt thuật toán  Kiểu liệu, ADT, cấu trúc liệu Phân tích thiết kế thuật toán  Thiết kế thuật toán  Phân tích thuật toán... diễn tối ưu cấu trúc liệu nhớ (trong/ngoài) máy tính gọi cấu trúc lưu trữ Có nhiều cấu trúc lưu trữ khác cho cấu trúc liệu Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM Thuật toán

Ngày đăng: 03/12/2015, 02:15

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN