Khoa học máy tính - Độ phức tạp thuật toán
lượt xem 177
download
Tham khảo tài liệu 'khoa học máy tính - độ phức tạp thuật toán', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Khoa học máy tính - Độ phức tạp thuật toán
- ph c t p thu t toán Lê S Vinh B môn Khoa H c Máy Tính – Khoa CNTT i H c Công Ngh - HQGHN Email: vinhioi@yahoo.com
- Các v n liên quan n thu t toán ư c gi i quy t b i nhi u thu t toán khác nhau 1. M tv n 2. i v i m t thu t toán: ph c t p v không gian (dung lư ng b nh s d ng) – ph c t p v th i gian ch y – 3. ph c t p v th i gian ch y Kĩ năng l p trình – Chương trình d ch – T c th c hi n các phép toán trên máy tính – D li u vào – “Th i gian ch y chương trình : 10s” ???
- ph c t p thu t toán 1. Th i gian ch y 1 thu t toán ph thu c vào c (size) c a d li u vào Tìm xem 1 i tư ng có trong danh sách N ph n t hay không? – S p x p tăng d n dãy s g m N s – Bài toán ngư i bán hàng c n thăm N a i m – Trong các d li u vào cùng m t c (N), th i gian ch y c a thu t toán cũng 2. 2. thay i Ví d : Tìm xem 1 i tư ng có trong danh sách N ph n t hay không? i tư ng n m u danh sach – i tư ng n m gi a danh sach – i tư ng n m cu i danh sách –
- ph c t p thu t toán Th i gian ch y trong trư ng h p x u nh t (worse-case running time) 1. Th i gian ch y l n nh t c a thu t toán ó trên t t c các d li u cùng c 2. Th i gian ch y trung bình Là trung bình c ng th i gian ch y trên t t c các b d li u cùng c . Th i gian ch y trong trư ng h p t t nh t (best-case running time) 3. Th i gian ch y ít nh t c a thu t toán ó trên t t c các d li u cùng c
- ph c t p thu t toán ánh giá th i gian ch y thu t toán: – T(n) = s lư ng phép toán sơ c p c n ph i th c hi n (phép toán s h c, phép toán logic, phép toán so sánh). M i phép toán sơ c p ư c th c hi n trong m t kho ng th i gian c nh. tăng c a hàm T(n) . Quan tâm nt c – Ví d : – T(n) = 2n2 + 3n + 10
- Bi u di n th i gian ch y b i kí hi u O nh nghĩa. Gi s f(n) và g(n) là các hàm th c không âm c a i s nguyên không âm n. Ta nói “f(n) là ô l n c a g(n)” và vi t là f(n) = O( g(n) ) n u t n t i các h ng s dương c* và n0 sao cho f(n) = n0.
- Bi u di n th i gian ch y b i kí hi u O Ví d . Gi s f(n) = 5n3 + 2n2 + 13n + 6 , ta có: f(n) = 5n3 + 2n2 + 13n + 6
- Bi u di n th i gian ch y b i kí hi u O Ký hi u ô l n Tên g i O(1) h ng O(logn) logarit O(n) tuy n tính O(nlogn) nlogn O(n2) bình phương O(n3) l p phương O(2n) mũ
- Th i gian ch y c a các l nh 1. L nh gán X = Th i gian ch y c a l nh gán b ng th i gian th c hi n bi u th c 2. L nh l a chon → if ( i u ki n) T0(n) → l nh 1 T1(n) else → l nh 2 T2(n) Th i gian: T0(n) + max (T1(n), T2(n))
- Th i gian ch y c a các l nh 3. L nh l p: for, while, do-while Ví d : X (n) ∑ (T (n ) + T (n )) 0 i i =1 X(n): S vòng l p T0(n): i u ki n l p Ti(n): Th i gian th c hi n vòng l p th i
- Th i gian ch y c a các l nh 4. Phân tích các hàm quy
- Ví d 2 Thu t toán t o ra ma tr n ơn v A c p n. (1) for (i = 0 ; i < n ; i++) (2) for (j = 0 ; j < n ; j++) (3) A[i][j] = 0; (4) for (i = 0 ; i < n ; i++) (5) A[i][i] = 1; ph c t p:
- Ví d 2 ’ Thu t toán t o ra ma tr n ơn v A c p n. (1) for (i = 0 ; i < n ; i++) (2) for (j = 0 ; j < n ; j++) (3) if (i == j) (4) A[i][j] = 1; (5) Else (6) A[i][j] = 0; ph c t p:
- Ví d 3 1) sum = 0; 2) for ( i = 0; i < n; i + +) 3) for ( j = i + 1; j < = n; j + +) 4) for ( k = 1; k < 10; k + +) 5) sum = sum + i * j * k ; ph c t p:
- Ví d 3 ’ 1) sum = 0; 2) for ( i = 0; i < n; i + +) 3) for ( j = i + 1; j < = n; j + +) 4) for ( k = 1; k < m; k + +) { 5) x = 2*y; 6) sum = sum + i * j * k ; 7) } ph c t p:
- 3’’ 1. for (i = 0; I < n; I ++) 2. for (j = 0; j < m; j ++) { 3. int x = 0; 4. 4. for (k = 0; k < n; k ++) 5. x = x + k; 6. for (k = 0; k < m; k++) 7. x = x +k; 8. }
- Ví d 4 Phân tích ph c t p thu t toán c a t t c các phép toán trên ki u danh d li u danh sách ư c cài t b ng m ng và danh sách liên k t
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Thuật toán giúp máy tính suy nghĩ như động vật
1 p | 403 | 86
-
MỘT SỐ THUẬT TOÁN NHẬN DẠNG VÀ CHUYỂN MÃ TIẾNG VIỆT
4 p | 384 | 71
-
Học Khoa Học Máy Tính nên đọc sách gì?
14 p | 355 | 68
-
Khoa học máy tính - Sắp xếp (Sorting)
9 p | 162 | 26
-
Bài giảng mạng máy tính (Lê Minh) - Chương 4
19 p | 138 | 24
-
Bài giảng mạng máy tính (Lê Minh) - Chương 3
15 p | 126 | 24
-
Bài giảng mạng máy tính (Lê Minh) - Chương 2
20 p | 147 | 23
-
Tạp chí Khoa học phổ thông: Làm bạn với máy vi tính - Số 16
16 p | 253 | 23
-
Khoa học máy tính - Sắp xếp (Phần 2)
12 p | 169 | 21
-
Cài đặt lại Windows 7 OEM loại trừ bloatware cho máy tính
4 p | 129 | 15
-
Giúp máy tính xách tay chạy “ngon” hơn
7 p | 103 | 12
-
Bài giảng 1: Giới thiệu môn học Khoa học máy tính
9 p | 174 | 12
-
Đề thi kết thúc học phần học kì 2 môn Kiến trúc máy tính và hợp ngữ năm 2020-2021 có đáp án - Trường ĐH Đồng Tháp
3 p | 56 | 10
-
14 đề thi Cấu trúc dữ liệu và giải thuật
14 p | 95 | 7
-
Những máy tính bảng sẽ chạy Windows 8
3 p | 87 | 6
-
Bus Slot
4 p | 86 | 5
-
Bài giảng Tin học đại cương: Chương 0 - Nguyễn Vũ Duy
5 p | 26 | 3
-
Bài giảng Nhập môn Công nghệ thông tin 2: Bài 5 – Trường ĐH Khoa học tự nhiên
19 p | 0 | 0
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn