Bài giảng Cấu trúc dữ liệu và giải thuật: Tính chi phí của thuật toán có nội dung trình bày về chi phí của thuật toán, big-O, chi phí của các giải thuật, bài tập tính chi phí của giải thuật Bubble sort,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Cấu trúc liệu & Giải thuật (Data Structures and Algorithms) Tính chi phí thuật tốn Nội dung Chi phí thuật tốn Big-O, Big-, Big- 09/2013 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM Chi phí giải thuật ? Tính tổng n số nguyên: sum = 0; for (i = 0; i < n; i++) sum += i; Thuật toán Bubble sort: for (i = n-1; i > 0; i ) for (j = 1; j a[j]) { temp = a[j-1]; a[j-1] = a[j]; a[j] = temp; } Chi phí thuật tốn [1/6] Cùng vấn đề, giải nhiều giải thuật khác VD Sắp xếp mảng Bubble sort, Heap sort, Quick sort,… Mỗi giải thuật có chi phí (cost) khác Chi phí thường tính dựa trên: thời gian (time) nhớ (space/memory) Chi phí “thời gian” thường quan tâm nhiều Chi phí thuật tốn [2/6] Tuy nhiên, việc dùng khái niệm “thời gian” theo nghĩa đen (vd giải thuật A chạy 10s) khơng ổn, vì: tuỳ thuộc vào loại máy tính (vd máy Dual-Core chạy nhanh Pentium II) tuỳ thuộc ngơn ngữ lập trình (vd Giải thuật viết C/Pascal chạy nhanh gấp 20 lần viết Basic/LISP) Do đó, người ta thường dùng “đơn vị đo logic” (vd số phép tính) thay cho đơn vị đo “thời gian thật” (mili-giây, giây,…) VD Chi phí (thời gian) để xếp mảng n phần tử giải thuật Bubble sort n2 (thao tác) Chi phí thuật tốn [3/6] VD Xem đoạn code sau sum = 0; for (i=0; i