MERGEARR

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++
Điểm: 10 (p) Thời gian: 1.0s Bộ nhớ: 2M Input: bàn phím Output: màn hình

Cho 2 mảng số nguyên đã được sắp xếp theo thứ tự tăng dần.
Hãy trộn 2 mảng đó lại thành mảng C sao cho mảng C vẫn có thứ tự tăng dần.
Input:

  • Dòng đầu chứa 2 số nguyên: M, N
  • Dòng tiếp theo chứa các phần tử a1,…,aM tăng dần
  • Dòng tiếp theo chứa các phần tử b1,…,bN tăng dần
    Output:
  • Dòng đầu ghi: M+N
  • Dòng sau ghi: C1, C2,…, CM+N tăng dần

TEST CASE 1

ĐẦU VÀO

5 3
1 3 5 7 9
2 4 6

ĐẦU RA

8
1 2 3 4 5 6 7 9

Gợi ý:
- Dùng 2 chỉ số i,j để duyệt qua các phần tử của 2 mảng A, B và k là chỉ số cho
mảng C.
- Trong khi (i<m) và (j<n) thì: /*Tức trong khi cả 2 dãy A, B đều chưa duyệt hết */ + Nếu A[i]>B[j] thì: C[k]=A[i]; i=i+1;
+ Ngược lại: C[k]=B[j]; j=j+1;
- Nếu dãy nào hết trước thì đem phần còn lại của dãy kia bổ sung vào cuối dãy C


Bình luận

Không có bình luận nào.