... mà một giảithuật cần đối với dữliệu nhập tốt nhất”.2. Trường hợp trung bình: Thời gian tính toán màmột giảithuật cần đối với dữliệu nhập thông thường”. VVííddụụ2. Giảithuật ... Với phần lớn các bài toán, thường có nhiều giải thuật khác nhau để giải một bài toán.- Làm cách nào để chọn giảithuật tốt nhất để giải một bài toán?- Làm cách nào để so sánh các giảithuật ... thuật cùng giải được một bài toán? Phân tích độ phức tạp của một giải thuật: Dự đoán các tài nguyên mà giảithuật đó cần KhKháái nii niệệmm Tài nguyên của một giải thuật: Bộ...
... vấn đề con để giải quyết, sau đó kết hợp lại2. Giảithuật đệ qui: Để giải quyết 1 vấn đề, giải thuật gọi lại chính nó 1 hay nhiều lần để giải quyết những vấn đề con3. Giảithuật chia để trị: ... tại hai hằng số c0 và N0 sao cho g(N) nhỏ hơn c0 vi mi N>N0ã Theta ln: Theta(f) = (f) O(f) ThuThuậật tot toáán chia đn chia đểểtrtrịị1. Khái niệm: Giảithuật chia để trị ... factorial (int n){ if (n == 0) return 1;else return n * factorial(n - 1);} Tính tối ưu của giảithuật đệ qui?int factorial (int n){ int c, fact = 1;for (c = 1; c<= n; c++)fact*= c;return...
... 3 10 }Ban đầu mảng A có {5} đã sắp xếp1. Chèn 8 vào {5} {5,8}2. Chèn 6 vào {5,8} {5,6,8}3. Chèn 3 vào {5,6,8} {3,5,6,8}4. Chèn 10 vào {3,5,6,8} {3,5,6,8,10} Ôn tÔn tậập Insertion ... sortShell sortGiới thiệu:– Được phát minh bởi Donald L.Shell vào năm 1959– Shell sort là thuật toán hiệu quả nhất trong nhóm các thuật toán sắp xếp có độ phức tạp O(n2). – Shell sort là sự ... (k>0)&&(a[k-1]>x);k )a[k]=a[k-1];a[k]=x;}} Shell sortShell sortÝ tưởng thuật toán:- Thuật toán Shell sort với số bước giảm dần- Chọn khoảng cách giữa các bước d = n; d=(d+1)/2-...
... giá trị các đỉnh con. - Một khi danh sách dữliệu đã được vun thành đống, gốc của nó là phần tử lớn nhất, thuật toán sẽ giải phóng nó khỏi đống để đặt vào cuối danh sách. Heap sortHeap sort ... (chọn phần tử lớn nhất (hoặc nhỏ nhất) đặt vào cuối (hoặc đầu) danh sách, sau đó tiếp tục với phần còn lại của danh sách).- Sắp xếp chọn có độ phức tạp O(n2). Nhưng Heapsort sử dụng cấutrúc ... sortHeap sort Giải thuật: - Xem danh sách n phần tử là cây nhị phân. - Cây nhị phân được xác định như sau: tại nút thứ i tương ứng với chỉ số thứ i của mảng có con trái lànút 2*(i+1)-1 và con phải...
... Đánh giá thuật toán:- Độ phức tạp của giảithuật là O(nlgn)- Ưu điểm: Nhanh, hiệu quả, và không đòi hỏi vềkhông gian bộ nhớ- Nhược điểm: Khi dãy số đã sắp xếp có thứ tự thì giải thuật này ... …,an] thành 2 dãy b,c theo nguyên tắc luân phiên từng nhóm k phần tử- B3: Trộn từng cặp dãy con gồm k phần tử của dãy b,c vào a- B4: k=k*2;- Nếu k <n thì quay lại B2. - Ngược ... tửnhỏ hơn trong hai phần tửa[i], a[j] vào dãy bwhile (j < right) { j++; k++; b[k] = a[j] }//đặt các phần tửcòn lại của dãy a[m+1,r] vào cuối dãy bwhile (i < mid) { i++;...
... dụng trong các cấutrúcdữliệu là danh sách liên kết hoặc file Merge sort trMerge sort trựực tic tiếếpp41 Merge sort trMerge sort trựực tic tiếếpp Đánh giá thuật toán:- ... Merge sort Ưu và nhược điểm:- Thuật toán trộn tự nhiên tận dụng được các đường chạy tự nhiên của dãy- Tuy nhiên, trộn tự nhiên đòi hỏi không gian bộ nhớ để lưu các dãy phụ b, c- Thuật toán ... gianB1: Phân phối các run luân phiên vào a1,a2,a3a1: (3,5);(4,15,20)a2: (2,7,12);(1,2,8,23)a3: (8);(7,21,27)B2: Trộn các run của a1,a2,a3 và luân phiên phân phối vào b1,b2,b3 Natural Merge sortNatural...
... ca mng ny vo mng kia. Việc sao chép này có thể loại bỏ nếu ta bắt đầu với Fn-1run của mảng 1 và Fn-2run của mảng 2. Với Fn-1, Fn-2là các số liên tiếp trong nãy Fibonaci Polyphase Merge ... hiệu quả bởi vì trong cùng 1 lần duyệt thìphân nữa số mảng luôn luôn giữ vai trò trộn (nguồn) vàphân nữa giữ vai trò phân phối (đích) Cải tiến: Thay đổi vai trò của các mảng trong cùng...
... cộng: 10So sánh với các thuật toán khác: Thuật toán Phép nhân Phép cộngCơ bản 13 7Horner 7 7Xử lý hệ số 5 10 ThuThuậật tot toáán cơ bn cơ bảảnn Thuật toán:result = a0+ ... Thuật toán:result = an;for (int i=n-1;i>=0;i ){ result = result * x;result = result + ai;} ThuThuậật tot toáán tin tiềền xn xửửlý hlý hệệssốốĐánh giá thuật ... ai*xpower;}Đánh giá thuật toán:- Số phép cộng: 1+ (n-1) = n- Số phép nhân: 1+ 2*(n-1) = 2n-1 TTổổng kng kếết t Bài tập: Phân tích đa thức sau theo 2 phương pháp Horner và Xử lý hệ sốx7+6x6+4x4-2x3+3x2-7x+5Thuật...
... Trình bày các bước của thuật toán Gaus-Jordan của hệ phương trình sau ThuThuậật tot toáán Gaussn Gauss--JordanJordan- Từ hệ phương trình Ma trận n dòng và n+1 cộtBiến đổi...
... hiện tiếp theo bằng cách thay đổi giá trị đầu của đoạn text- Thuật toán thông thường: - So sánh kí tự đầu của đoạn text và kí tự đầu của chuỗi con- Nếu trùng so sánh kí ... P=”abcababcabd” Prefix(11)=0 String matchingString matching Thuật toán:isub= 0; itext = 0; //ví trịhiện tại của chuỗi và đoạn textstarttext=0; //vịtrí bắt đầuwhile (itext ... <>P[q])k=PI[k];if(P[k+1]==P[q])k++;PI[q]=k;} KnuthKnuth--MorrisMorris--PrattPratt Thuật toán tính KMP:– Xác định độ dài q của xâu vừa là prefix của P,vừa làsuffix của T[1 i] với...
... PI[6]=3P=”abcabca” PI[7]=4 BoyerBoyer--MooreMoore Thuật toán:– Gọi s là vị trí cần khảo sỏt. Ban u s=0. Lp chng no s<=n-m:ã So sỏnh 2 xâu P và T, lần lượt từvịtrí cuối cùng, cho ... P=”abcabca”P[0+1]=T[11] q=0+1=1 KnuthKnuth--MorrisMorris--PrattPratt Đánh giá thuật toán:- Thuật toán Knuth-Morris-Pratt có chi phí về thời gian là O(m+n) với nhiều nhất là 2n-1 lần ... so sánh ký tự trong quá trình tìm kiếm. BoyerBoyer--MooreMoore Ý tưởng:- Khác với KMP, thuật toán Boyer-Moore kiểm tra các ký tự mẫu từ phải sang trái- Hàm int Last(char c, char*P):...