Sau đây là thuật toán tìm dãy con chung dài nhất. Nhưng nó vẫn còn sai nghĩa là tìm không hết các phần tử của dãy con chung dài nhất ( chưa xuất được dãy con chung dài nhất). Bạn nào kiểm tra dùm coi.
Vidu: nhập vào 2 dãy:
dãy a: 1,5,9,6,7,10,15,19
dãy b: 2,5,6,7,16,19,20,21
thì thuật toán của mình chỉ xuất được 6,7. Đúng phải là 5,6,7,19 mới đúng.
Code:#include <iostream> using namespace std; void Nhap(int a[], int n) { for (int i = 0; i<n; i++) cin>>a[i]; } void xuat(int a[], int n) { for (int i = 0; i<n; i++) cout<<a[i]<<" "; } void Tim(int a[], int n, int x, int c[], int &t) { t = 0; for (int i = 0; i<n; i++) if (a[i] == x) { c[t] = i; t++; } } int DayConChung(int a[], int n, int b[], int m, int &max) { int k, j, l, spt, vt, t; int c[100]; max = 0; for (int i = 0; i < n; i++) { Tim(b,m,a[i],c,t); for (l = 0; l < t; l++) { k = c[l]; spt = 0; j = i; while ((j<n) && (k<m)) { if (b[k] == a[j]) { spt++; j++; k++; } else break; } if (spt>max) { vt = i; max = spt; } } } return vt; } void main() { int a[100], b[100]; int n,m, max; cout<<"Nhap so phan tu cho day A: ";cin>>n; cout<<"Nhap gia tri cho day A"<<endl; Nhap(a,n); cout<<"Nhap so phan tu cho day B: ";cin>>m; cout<<"Nhap gia tri cho day B"<<endl; Nhap(b,m); xuat(a,n);cout<<endl; xuat(b,n);cout<<endl; int vt; vt = DayConChung(a,n,b,m,max); if (max == 0) cout<<"Khong co day con chung"; else { cout<<"Day con chung dai nhat la: "; for (int i = 0; i<max; i++) cout<<a[vt+i]<<" "; } }--------------------------------------------------
Xem các chủ đề cùng chuyên mục:
- Nhập một mảng, Trong khi nhập mảng được sắp xếp tăng dần 19/07/2009
- Nhập 1 chuỗi. Các chữ thường => hoa, các chữ hoa => thường rồi xuất ra 21/07/2009
- Bài Tập Hàm-Số Hoàn Hảo 21/05/2009
- tính tổng ma trận đê!!! 10/05/2009
- ".:'Định Nghĩa Giai Thừa':." 26/05/2009
- Nhập 1 dãy số nguyên, sau đó in ra các giá trị và chỉ số lớn hơn x 19/07/2009
- Liên quan đến ma trận. 14/05/2009
- Tính tần suất tập hai đây(ko giống như dùng con trỏ đâu) 14/05/2009
- Muốn học tốt C va C++ thì vào đây!!!! 14/05/2009
- Bài Tập Hàm-Tổ hợp 21/05/2009
+1 EXP










Trả Lời Với Trích Dẫn