Cho 2 mảng a, b hãy cho biết mảng b có phải là hoán vị của mảng a không

4 982 11
Cho 2 mảng a, b  hãy cho biết mảng b có phải là hoán vị của mảng a không

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài 260: Cho mảng a, b Hãy cho biết mảng b có phải hoán vị mảng a không #include #include #include #define MAX 100 void nhap (int a[], int &n) { { printf("\nNhap so phan tu: "); scanf("%d", &n); if(n MAX) { printf("\nSo phan tu khong hop le Xin kiem tra lai !"); } }while(n MAX); for(int i = 0; i < n; i++) { printf("\nNhap a[%d]: ", i); scanf("%d", &a[i]); } } void xuat(int a[], int n) { for(int i = 0; i < n; i++) { printf("%4d", a[i]); } } /* Khái niệm hoán vị diễn tả ý tưởng đối tượng phân biệt xếp theo thứ tự khác Ví dụ, với số từ đến sáu, cách thứ tự tạo thành dãy số không lặp lại Một hoán vị là: "3, 4, 6, 1, 2, 5" */ void HoanVi(int &a, int &b) { int temp = a; a = b; b = temp; } void SapXepTangDan(int a[], int n) { for(int i = 0; i < n - 1; i++) { for(int j = i + 1; j < n; j++) { if(a[i] > a[j]) { HoanVi(a[i], a[j]); } } } } void KiemTraBCoPhaiLaHoanViCuaA(int a[],int b[], int na, int nb) { if(na != nb) { printf("\nKhong phai"); // Số lượng phần tử phải return; } SapXepTangDan(a, na); // Sắp xếp mảng a SapXepTangDan(b, nb); // Sắp xếp mảng b for(int i = 0; i < na; i++) { if(a[i] != b[i]) { printf("\nKhong phai"); return; } } printf("\nPhai"); return; } int main() { int na, nb; int a[MAX], b[MAX]; nhap(a, na); xuat(a, na); nhap(b, nb); xuat(b, nb); KiemTraBCoPhaiLaHoanViCuaA(a, b, na, nb); getch(); return 0; }

Ngày đăng: 20/10/2016, 20:15

Từ khóa liên quan

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

Tài liệu liên quan