Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - ThS. Nguyễn Hà Giang

46 10 0
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - ThS. Nguyễn Hà Giang

Đ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

Bài giảng Cơ sở dữ liệu: Chương 1 giới thiệu một số nội dung cơ bản sau: Dự án tin học, chương trình máy tính, cấu trúc dữ liệu & giải thuật, tiêu chuẩn đánh giá cấu trúc dữ liệu, giải thuật, kiểu dữ liệu trong máy tính, độ phức tạp của giải thuật. Mời tham khảo.

HUTECH TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ  CẤU TRÚC DỮ LIỆU & GT CHƯƠNG CTDL & GT GV: ThS NGUYỄN HÀ GIANG TP HCM – 1/2009 Nội dung HUTECH • Dự án tin học CTDL & GT – Biểu diễn đối tượng – Xử lý liệu • • • • • • Chương trình máy tính Cấu trúc liệu & giải thuật Tiêu chuẩn đánh giá CTDL Giải thuật Kiểu liệu máy tính Độ phức tạp giải thuật HUTECH Dự án tin học Bài tốn giải máy tính CTDL & GT Bài toán thực tế Đối tượng liệu Xử lý đối tượng DL HUTECH 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 CTDL & GT – Phản ánh xác liệu thực tế – Dễ dàng xử lý máy tính! Xây dựng CTDL HUTECH 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ý CTDL & GT Kết mong muốn HUTECH Chương trình máy tính Quan hệ chặt chẽ Cấu trúc liệu Giải thuật CTDL & GT Chương trình HUTECH CTDL & Giải thuật CTDL & GT • 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ả Ví dụ HUTECH 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! Tốn Lý Hoá Văn CTDL & GT Học sinh Tiên Tùng Thảo Ví dụ HUTECH • Phương án A: dùng mảng chiều – int result[12] = { 7, 9, 5, 6, 9, 5, 8, 7, 8, 6, 9, }; CTDL & GT 9 8 Tiên Tùng Thảo Ví dụ HUTECH • Truy xuất điểm mơn j hs i phần tử dòng i cột j – Bảng điểm(i, j)  result[((i-1)*số cột)+j] • Ngược lại – Result[i]  Bảng điểm(dòng((i/số cột)+1), cột((i-1) %số cột)+1) CTDL & GT • Thao tác xử lý sau: void XuatDiem() { const int so_mon = 4; int sv, mon; for( int i=0; i < 12; i++) { sv = i/so_mon; mon = i % so_mon; printf(“Diem mon %d sv % d %d”, mon, sv, result[i]); } } 10 HUTECH CTDL & GT Tên kiểu Kiểu liệu KT Miền giá trị Ghi char 01 -128 đến 127 Có thể dùng số nguyên byte có dấu hay kiểu ký tự unsigned char 01 đến 255 Số nguyên byte ko dấu int 02 -32768 đến 32767 unsigned int 02 đến 65355 long 04 -232 đến 231 -1 unsigned long 04 đến 232 -1 float 04 3.4E-38 … 3.4E38 double 08 1.7E-308 … 1.7E308 long double 10 3.4E-4932 …1.1E4932 Gọi tắt unsigned Giới hạn trị tuyệt đối.Các giá trị 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 40 HUTECH Độ 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: CTDL & GT – 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 41 HUTECH Độ 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 CTDL & GT • 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! 42 CTDL & GT HUTECH 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 43 VD tính độ phức tạp HUTECH • 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) } CTDL & GT – – – – – – – 44 VD tính độ phức tạp HUTECH CTDL & GT • VD hàm tìm kiếm – – – – – – – – (1) (2) (3) (4) (5) (6) (7) (8) i=0; found = false; while ( ii; j ) (3) if (a[j -1 ] > a[j]){ (4) temp = a[j -1 ] ; (5) a[j -1 ] = a[j]; (6) a[j] = temp; (7) }... tượng – Xử lý liệu • • • • • • Chương trình máy tính Cấu trúc liệu & giải thuật Tiêu chuẩn đánh giá CTDL Giải thuật Kiểu liệu máy tính Độ phức tạp giải thuật HUTECH Dự án tin học Bài tốn giải máy

Ngày đăng: 21/05/2021, 14:18

Từ khóa liên quan

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

Tài liệu liên quan