Số lần đổi chỗ.
Cho dãy số 4 gồm n số nguyên phân biệt: Ao, A,, A,,..., A n-1'
Em có thể dùng thao tác sau: Chọn hai vị trí kề nhau i và i + 1 bất kì (0 <i<n − 1), nếu A, > A + , thì đổi giá trị của A với A, . .
i+1
cho nhau.
Em hãy thao tác trên mảng A, sao cho sau khi thực hiện tuần tự các thao tác, mảng 4 được sắp xếp tăng dần,
Yêu cầu: Hãy in ra số lần đổi giá trị và vị trí i và j của lần đổi chỗ đó. Dữ liệu: Nhập từ thiết bị vào chuẩn:
- Dòng đầu tiên chứa một số nguyên dương n.
Dòng thứ hai chứa n số nguyên theo thứ tự án, A0, A1, A2,...,An-1"
Kết quả: Hiển thị ở thiết bị ra chuẩn:
Dòng đầu tiên chứa số nguyên dương K là số thao tác bạn làm.
- Á dòng sau, dòng thứ i in ra hai số a," (0Śu<"< n) cho biết bạn sẽ đội giá trị của hai vị trí u, v cho nhau.
Số lần đổi chỗ.
Cho dãy số 4 gồm n số nguyên phân biệt: Ao, A,, A,,..., A n-1'
Em có thể dùng thao tác sau: Chọn hai vị trí kề nhau i và i + 1 bất kì (0 <i<n − 1), nếu A, > A + , thì đổi giá trị của A với A, . .
i+1
cho nhau.
Em hãy thao tác trên mảng A, sao cho sau khi thực hiện tuần tự các thao tác, mảng 4 được sắp xếp tăng dần,
Yêu cầu: Hãy in ra số lần đổi giá trị và vị trí i và j của lần đổi chỗ đó. Dữ liệu: Nhập từ thiết bị vào chuẩn:
- Dòng đầu tiên chứa một số nguyên dương n.
Dòng thứ hai chứa n số nguyên theo thứ tự án, A0, A1, A2,...,An-1"
Kết quả: Hiển thị ở thiết bị ra chuẩn:
Dòng đầu tiên chứa số nguyên dương K là số thao tác bạn làm.
- Á dòng sau, dòng thứ i in ra hai số a," (0Śu<"< n) cho biết bạn sẽ đội giá trị của hai vị trí u, v cho nhau.

Quảng cáo
Trả lời:
Chương trình mẫu:

Ghi chú: Các thao tác được lưu vào một danh sách. Mỗi phần tử của danh sách là một tuple (khai báo bởi ( ) ). Tuple khá giống danh sách, nhưng các phần tử của nó không thể thay đổi giá trị.
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Đang tải chế độ Học...
Hot: 1000+ đề thi giữa kì 1 lớp 1-12 đầy đủ các môn (Update 2026) (chỉ từ 60k). Tải ngay
Đăng ký VIP để học và luyện thi không giới hạn
Trọn bộ quyền lợi trên Vietjack, trong một tài khoản.
- Phòng luyện thi cấp tốc: ĐGNL - ĐGTD, Tốt nghiệp THPT, Ôn vào 10, Ôn vào 6, Ôn Giữa kì/Cuối kì
- Hơn 200K đề thi thử, đề minh hoạ, chính thức các năm
- Với 3tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
- Tải xuống đề thi [DOCX] với đầy đủ đáp án
- Xem hàng ngàn bài giảng đính kèm củng cố thêm kiến thức
- Bao gồm tất cả các bậc từ Tiểu học đến Đại học
- Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện
- Đăng ký ngay
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Để so sánh thứ tự từ điển của các xâu tiếng Việt, em không thể dùng các
phép toán so sánh “<, >, ...” như bình thường, vì trên bảng mã Unicode, các kí tự có dấu sẽ đứng sau 26 kí tự Latinh không dấu trong bảng ASCII. Vì vậy, em sẽ sử dụng thư viện locale là một thư viện chuyên dùng để xử quy chuẩn của các ngôn ngữ.
Em khai báo thư viện locale, sau đó khai báo sử dụng ngôn ngữ tiếng Việt bằng câu lệnh: locale.setlocale(locale.LC_ALL, "vi_VN"). Thư viện này cho phép ta dùng hai hàm như sau:
• locale.strcoll(s1, s2) : so sánh hai xâu và trả về:
– Một số âm nếu s1 đứng trước s2.
- Số 0, nếu s1 giống hệt s2.
– Một số dương nếu s2 đứng trước s1.
locale.strxfrm(s): chuyển đổi một xâu s thành một con số để thuận tiện cho việc so sánh thứ tự.
Câu lệnh locale.strcoll(s1, s2)có thể được viết thành biểu thức locale.strxfrm (s1) < locale.strxfrm (s2).
Trong bài này, đầu tiên em khai báo nhập xuất tệp (phải để mã hoá bằng UTF-8) và sử dụng thư viện locale với ngôn ngữ là tiếng Việt (mã vi_VN hoặc vi). Sau đó, em tạo mảng các xâu s rồi nhập n, tiếp theo em lần lượt nhập n dòng rồi cho vào mảng s. Cuối cùng, em sắp xếp mảng s sau cho strxfrm ( ) của các xâu trong mảng s theo chiều hướng tăng dần (có thể dùng hàm sort với cú pháp như ở dưới) và in ra kết quả.
Chương trình mẫu:
import sys
sys.stdin = open("danhsach.txt", "r", encoding="utf8") sys.stdout open ("Tudien.txt", "w", encoding="utf8") import locale
locale.setlocale (locale. LC ALL, "vi_VN")
n=int (input())
s=[]for i in range (n):
s.append(input())
s.sort (key=locale.strxfrm) for x in s:
print (x)
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Số lượng nghịch thế đạt giá trị lớn nhất khi dãy 4 đã được sắp sẵn theo thứ tự giảm dần. Khi đó, số lượng nghịch thế của A là:

Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Đăng ký để học cùng Vietjack. Hoàn toàn miễn phí!
Bằng việc đăng ký, bạn đồng ý với Điều khoản sử dụng và Chính sách bảo mật của Vietjack.



