Câu hỏi:
03/07/2023 187Áp dụng trực tiếp thuật toán sắp xếp trộn ở trên để mô tả chi tiết phương pháp chia để trị giải bài toán đếm số lượng nghịch thế ở trên.
Sách mới 2k7: Tổng ôn Toán, Lí, Hóa, Văn, Sử, Địa…. kỳ thi tốt nghiệp THPT Quốc gia 2025, đánh giá năng lực (chỉ từ 110k).
Quảng cáo
Trả lời:
Khi chia mảng 4 thành hai mảng con T và P, số lượng nghịch thế từ những cặp phần tử mà một phần tử thuộc mảng 7 và một phần tử thuộc mảng P sẽ không thay đổi nếu ta sắp xếp các phần tử trong từng mảng 7 và P tăng dần. Nhận xét này giúp cho chúng ta có thể áp dụng trực tiếp các bước của thuật toán sắp xếp trộn ở trên như sau:
1. Chia: Sử dụng thuật toán chia của hàm Merge_sort(A).
2. Trị: Gọi đệ quy hàm Merge_sort(T)và Merge_sort(P) để giải từng bài toán con, đồng thời cập nhật kết quả đếm số lượng nghịch thế từng bài toán con vào một biến đếm.
3. Kết hợp: Sử dụng thuật toán trộn của hàm Merge (A), đồng thời cập nhật số lượng nghịch thế từ những cặp phần tử mà một phần tử thuộc mảng T và một phần tử thuộc mảng P, các phần tử trong hai mảng này đều đã được sắp xếp tăng dần.
Gợi ý: Trong hàm Merge(A), mỗi khi xảy ra điều kiện T[i]>P[j], nghĩa là các phần tử từ T[i+1] đến phần tử cuối cùng của mảng T đều lớn hơn P[j], số lượng nghịch thế cần được cập nhật thêm là len (T) −i, với len (T) là số lượng phần tử của mảng T.
Em hãy mô tả chi tiết kết quả từng bước trong các hướng dẫn 1, 2, 3 trên cho một trường hợp mảng số cụ thể, ví dụ thực hành trên mảng gồm 7 số có các giá trị lần lượt là 9, 44, 7, 2, 8, 17, 31.
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1:
Cho một mảng A gồm n phần tử A0, A1,...An-1 hai phân tử bất kì có thể bằng nhau. Hãy tính số lượng những cặp hai phân tử mà không phải là nghịch thể trong mảng.
a) Vận dụng bài Thực hành 1 ở trên để mô tả chi tiết phương pháp chia để trị cho bài toán này.
Câu 2:
Viết chương trình thực hiện thuật toán đơn giản bằng vòng lặp để đếm số lượng nghịch thế. Tiếp theo em hãy đếm số bước thực hiện bởi thuật toán này so với thuật toán chia để trị ở trên trong một số ví dụ cụ thể.
Câu 3:
b) Viết chương trình nhập vào giá trị n và n giá trị A0, A1, ..., An-1 đưa ra số lượng các cặp không phải là nghịch thể trong mảng A
Câu 5:
Viết chương trình nhập vào một số nguyên dương n và n giá trị Áo A....., A, 1 đôi một khác nhau, đưa ra số lượng nghịch thế của mảng vừa
nhập vào.
về câu hỏi!