Câu hỏi:
17/06/2026 134
Nâng cấp chương trình của nhiệm vụ 1 với yêu cầu bổ sung: Cần đưa ra kết quả là số lượng các cặp nghịch đảo và toàn bộ dãy các cặp chỉ số nghịch đảo đã tìm thấy. Ví dụ với A = [4, 5, 2, 10, 4] thì chương trình sẽ đưa ra giá trị 4 và dãy [(4, 2), (5, 2), (5, 4), (1, 4)].
Nâng cấp chương trình của nhiệm vụ 1 với yêu cầu bổ sung: Cần đưa ra kết quả là số lượng các cặp nghịch đảo và toàn bộ dãy các cặp chỉ số nghịch đảo đã tìm thấy. Ví dụ với A = [4, 5, 2, 10, 4] thì chương trình sẽ đưa ra giá trị 4 và dãy [(4, 2), (5, 2), (5, 4), (1, 4)].
Trả lời:
Giải bởi Vietjack
Để giải quyết bài toán đếm số cặp nghịch đảo của dãy số, ta có thể sử dụng một thuật toán đơn giản như sau:
- Duyệt qua từng phần tử của dãy và đối chiếu với các phần tử sau nó để tìm các cặp nghịch đảo.
- Nếu phần tử tại vị trí i lớn hơn phần tử tại vị trí j, ta tăng biến đếm số cặp nghịch đảo lên 1 và lưu cặp chỉ số (i, j) vào danh sách các cặp nghịch đảo.
- Trả về giá trị biến đếm số cặp nghịch đảo và danh sách các cặp chỉ số nghịch đảo.

- Kết quả như sau:

CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1:
Cho một dãy số bất kì A[0], A[1]..., A[n – 1]. Một tổng con được định nghĩa là tổng của một dãy con liên tục dạng . Bài toán yêu cầu tìm và chỉ ra một tổng con và dãy con tương ứng có giá trị lớn nhất. Yêu cầu sử dụng kĩ thuật chia để trị.
Cho một dãy số bất kì A[0], A[1]..., A[n – 1]. Một tổng con được định nghĩa là tổng của một dãy con liên tục dạng . Bài toán yêu cầu tìm và chỉ ra một tổng con và dãy con tương ứng có giá trị lớn nhất. Yêu cầu sử dụng kĩ thuật chia để trị.
Câu 2:
Cho dãy số A, cần tìm phần tử mốt (mode) của A. Phần tử mốt là phần tử có số lần xuất hiện nhiều nhất trong A. Nếu tồn tại nhiều thì chỉ yêu cầu tìm ra một phần tử mốt. Yêu cầu sử dụng kĩ thuật chia để trị.
Cho dãy số A, cần tìm phần tử mốt (mode) của A. Phần tử mốt là phần tử có số lần xuất hiện nhiều nhất trong A. Nếu tồn tại nhiều thì chỉ yêu cầu tìm ra một phần tử mốt. Yêu cầu sử dụng kĩ thuật chia để trị.
Câu 3:
Khi làm việc với các danh sách mảng, nhiều trường hợp đòi hỏi cần kiềm ra các danh sách mảng đã được sắp thứ tự để áp dụng thuật toán phù hợp. Cho một dãy số, theo em làm thế nào để xác định dãy số đã được sắp xếp theo thứ tự tăng dần hoặc giảm dần?
Khi làm việc với các danh sách mảng, nhiều trường hợp đòi hỏi cần kiềm ra các danh sách mảng đã được sắp thứ tự để áp dụng thuật toán phù hợp. Cho một dãy số, theo em làm thế nào để xác định dãy số đã được sắp xếp theo thứ tự tăng dần hoặc giảm dần?
