Bài giảng cấu trúc dữ liệu bài 1 tổng quan về cấu trúc dữ liệu và giải thuật

47 446 2
Bài giảng cấu trúc dữ liệu   bài 1 tổng quan về cấu trúc dữ liệu và giải thuật

Đ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

Tổng quan Cấu trúc liệu giải thuật Mục tiêu     Giới thiệu vai trò việc tổ chức liệu đề án tin học Mối quan hệ giải thuật cấu trúc liệu Các yêu cầu tổ chức cấu trúc liệu Tổng quan đánh giá độ phức tạp giải thuật Cấu trúc liệu - Khoa CNTT Nội dung     Vai trò Cấu trúc liệu đề án tin học Các tiêu chuẩn đánh giá cấu trúc liệu Kiểu liệu Đánh giá độ phức tạp giải thuật Cấu trúc liệu - Khoa CNTT Dự án tin học  Vai trò cấu trúc liệu dự án tin học: Bài toán giải máy tính Bài tốn thực tế Đối tượng liệu Cấu trúc liệu - Khoa CNTT Xử lý đối tượng DL Tổ chức biểu diễn đối tượng  Dữ liệu thực tế: -  Mn hình vạn trạng, đa dạng, phong phú Thường có chứa đựng quan hệ với Cần phải tổ chức biểu diễn thành cấu trúc thích hợp - Phản ánh xác liệu thực tế Dễ dàng xử lý máy tính Xây dựng CTDL Cấu trúc liệu - Khoa CNTT Xây dựng thao tác xử lý DL Dựa Y/C cụ thể, xác định trình tự giải vấn đề máy tính để đưa kết mong muốn Đối tượng DL Thao tác xử lý Kết mong muốn Cấu trúc liệu - Khoa CNTT Chương trình máy tính Quan hệ chặt chẽ Cấu trúc liệu Giải thuật Chương trình Cấu trúc liệu - Khoa CNTT CTDL & Giải thuật  Có mối quan hệ mật thiết - - - - Giải thuật phản ánh phép xử lý, đối tượng xử lý giải thuật liệu Với CTDL chọn có giải thuật tương ứng phù hợp Khi CTDL thay đổi GT thay đổi tránh xử lý gượng ép, thiếu tự nhiên cấu trúc ko thích hợp CTDL tốt giúp giải thuật xử lý phát huy tốt đa khả Cấu trúc liệu - Khoa CNTT Ví dụ Quản lý điểm học sinh: gồm có điểm, học sinh Thao tác xuất điểm số môn học học sinh! Học sinh Toán Lý Hoá Văn Tiên Tùng Thảo Cấu trúc liệu - Khoa CNTT Ví dụ  Phương án A: dùng mảng chiều int result[12] = { 7, 9, 5, 6, 9, 5, 8, 7, 8, 6, 9, }; Tiên 8 Tùng Thảo Cấu trúc liệu - Khoa CNTT 10 Kiểu liệu cấu trúc  Hiện thực - - - Kiểu liệu sở cho phép mô tả thông tin:  int DiemThi Thông tin khác đòi hỏi kiểu liệu cấu trúc:  char MSSV[15];  char TenSV[30];  char NoiSinh[30]; Thông tin ngày tháng năm sinh dùng ghi:  typedef struct tagDate { char ngay; char thang; char nam; } Date; Cấu trúc liệu - Khoa CNTT typedef struct tagSV { char MSSV[15]; char TenSV[30]; char NoiSinh[30]; Date NgaySinh; int DiemThi; } SinhVien; 33 Độ phức tạp giải thuật  Sự cần thiết phân tích giải thuật GT A GT C GT tốt GT B Vấn đề cần giải Cấu trúc liệu - Khoa CNTT Giải thuật Giải thuật đơn giản Giải thuật thực nhanh 34 Thời gian thực  Thời gian thực phụ thuộc vào -   Giải thuật Tập thị máy tính Cấu hình máy tính (tốc độ) Kỹ người lập trình Tính phức tạp thời gian tiếp cận theo đo lường việc thực thi Thời gian thực chương trình hàm theo kích thước liệu vào: T(n), n kích thước liệu vào Cấu trúc liệu - Khoa CNTT 35 Thời gian thực    Đơn vị T(n) : theo số lệnh thực T(n) = Cn CT cần Cn thị thực thi Thời gian thực xấu nhất: tính chất liệu ảnh hưởng - VD chương trình xếp cho thời gian khác với DL có thứ tự khác nhau!  T(n) thường xem TG chương trình thực xấu DL kích thước n Cấu trúc liệu - Khoa CNTT 36 Tỉ suất tăng  Hàm ko âm T(n) có tỉ xuất tăng f(n) tồn số C N0 cho: - T(n) < Cf(n), với n ≥ N0 - “cho hàm ko âm T(n) bất kỳ, ta ln tìm tỷ suất tăng f(n) nó” Giả sử T(0) =1, T(1) = 4, tổng quát T(n) = (n+1)2  ∀ n ≥ 1, chứng minh T(n) = (n+1) ≤ 4n , ∀ n ≥ 1, 2 tỉ suất tăng n2 Cấu trúc liệu - Khoa CNTT T ( n) Running Time Đặt N0 = 1, C = 4, c × f (n) n0 Input Size 37 Độ phức tạp giải thuật T1(n) = 100n2 T2(n) = 5n3  Khi n đủ lớn: n > 20, T1(n) < T2(n)  Cách hợp lý xét tỷ suất tăng hàm TG thực CT thay thân thời gian thực Cấu trúc liệu - Khoa CNTT 38 Độ phức tạp giải thuật  Cho hàm T(n), T(n) có độ phức tạp f(n) tồn C, N0 cho: - T(n) ≤ Cf(n) với n ≥ N0 (tức T(n) có tỉ suất tăng f(n) ký hiệu T(n) O(f(n)) - VD: T(n) = (n+1)2 có tỷ suất tăng n2 nên T(n) = (n+1)2 O(n2) Lưu ý: O(Cf(n)) = O(f(n)) với C số O(C) = O(1) -  Nói cách khác độ phức tạp tính tốn giải thuật hàm chặn hàm thời gian Cấu trúc liệu - Khoa CNTT 39 Độ phức tạp giải thuật  Các độ phức tạp thường gặp: -   Log2n, n, nlog2n, n2, n3, 2n, n!, nn Thông thường thuật giải có độ phức tạp đa thức cài đặt Cịn phức tạp mức hàm mũ phải cải tiến giải thuật! Cấu trúc liệu - Khoa CNTT 40 Hàm tăng trưởng 1,00E+10 1,00E+09 1,00E+08 n log n sqrt n n log n 100n n^2 n^3 1,00E+07 T(n) 1,00E+06 1,00E+05 1,00E+04 1,00E+03 1,00E+02 1,00E+01 1,00E+00 1,00E-01 16 32 64 128 256 512 n Cấu trúc liệu - Khoa CNTT 41 1024 Hàm tăng trưởng 1,00E+155 1,00E+143 1,00E+131 n log n sqrt n n log n 100n n^2 n^3 2^n 1,00E+119 1,00E+107 T(n) 1,00E+95 1,00E+83 1,00E+71 1,00E+59 1,00E+47 1,00E+35 1,00E+23 1,00E+11 1,00E-01 16 32 64 128 256 512 n Cấu trúc liệu - Khoa CNTT 42 1024 Qui tắc tính độ phức tạp     Thời gian thực lệnh gán, đọc/ghi liệu O(1) Thời gian thực chuỗi lệnh xác định quy tắc cộng Thời gian thực cấu trúc IF thời gian lớn thực sau THEN ELSE thời gian điều kiện Thường thời gian điều kiện O(1) Thời gian thực vòng lặp tổng thời gian thực thân vòng lặp Nếu thời gian thực thân vòng lặp ko đổi tg thực vịng lặp tích số lần lặp với thời gian thực thân vòng lặp Cấu trúc liệu - Khoa CNTT 43 VD tính độ phức tạp  VD giải thuật xếp bọt - (1) for(i = 0; i < n-1; i++) (2) for(j=n-1; j >i; j ) (3) if (a[j-1] > a[j]){ (4) temp = a[j-1]; (5) a[j-1] = a[j]; (6) a[j] = temp; (7) } Cấu trúc liệu - Khoa CNTT 44 VD tính độ phức tạp  VD hàm tìm kiếm - (1) (2) (3) (4) (5) (6) (7) (8) i=0; found = false; while ( i

Ngày đăng: 03/12/2015, 00:35

Từ khóa liên quan

Mục lục

  • Tổng quan về Cấu trúc dữ liệu và giải thuật

  • Mục tiêu

  • Nội dung

  • Dự án tin học

  • Tổ chức biểu diễn đối tượng

  • Xây dựng thao tác xử lý DL

  • Chương trình máy tính

  • CTDL & Giải thuật

  • Ví dụ

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Các tiêu chuẩn đánh giá CTDL

  • Slide 16

  • Slide 17

  • Slide 18

  • Thuật toán - giải thuật

  • Slide 20

Tài liệu cùng người dùng

Tài liệu liên quan