Hai dòng đã sắp xếp, kết quả ghi một dòng
Tải mã Python và hai tệp mẫu vào cùng thư mục. Tệp g11-cs-tron-hai-day.inp gồm hai dòng:
```text
-3 2 2 8
0 2 5
```
Chạy tại thư mục đó:
```text
python3 g11-cs-sap-xep-tron.py tron g11-cs-tron-hai-day.inp Data.out
```
Mở Data.out để kiểm dòng `-3 0 2 2 2 5 8`. Chế độ này đọc hai dãy không giảm, gọi merge rồi ghi kết quả bằng dấu cách và xuống dòng. Việc chỉ in ra màn hình chưa đáp ứng yêu cầu ghi Data.out. Chọn tệp đầu ra khác đầu vào để giữ dữ liệu mẫu.
Một dãy bất kì, kết quả đưa ra màn hình
Tệp g11-cs-day-can-sap-xep.inp chứa `8 3 6 1 7 2`. Chạy:
```text
python3 g11-cs-sap-xep-tron.py sap g11-cs-day-can-sap-xep.inp
```
Màn hình cần hiện `1 2 3 6 7 8`. Chế độ sap đọc một dãy số nguyên và giữ kết quả mergeSort trả về để in, không đòi dãy đầu vào đã sắp xếp.
Kiểm cả thứ tự không giảm và đủ số lần xuất hiện của từng giá trị. Chế độ tron từ chối dãy sai thứ tự, thiếu dòng hoặc dữ liệu không nguyên; dòng trắng được phép biểu diễn một dãy rỗng. Chế độ sap nhận tệp rỗng là dãy rỗng. Nếu không mở được tệp, kiểm lại tên và thư mục đang chạy.
Bài luyện
Sau chế độ tron với hai tệp mẫu, việc nào xác nhận đúng yêu cầu đầu ra?
Đó là đầu vào, chưa phải đầu ra.
Phần còn lại vẫn có thể thiếu hoặc sai thứ tự.
Cần kiểm cả tệp được ghi và toàn bộ kết quả.
Có chương trình chưa chứng minh đã chạy và ghi tệp.
Lời giải
Nhiệm vụ yêu cầu ghi kết quả ra tệp. Data.out phải tồn tại, có đủ bảy giá trị theo thứ tự và giữ ba lần xuất hiện của số 2.
Bài luyện
Chế độ sap có yêu cầu dãy đầu vào đã không giảm không?
Sắp xếp chính là công việc xử lí dãy chưa có thứ tự.
Mã nhận cả dãy nhiều phần tử.
Cần giữ đủ dữ liệu, không bỏ phần tử.
mergeSort chia và sắp xếp các phần trước khi trộn.
Lời giải
Điều kiện hai dãy đã không giảm thuộc hàm merge. mergeSort nhận dãy bất kì, sắp xếp từng nửa rồi mới gọi merge trên các kết quả đã có thứ tự.
Bài luyện
Kết quả chỉ còn một số 2 sau khi trộn hai dòng mẫu. Lỗi nào có thể khẳng định?
Đầu vào có ba số 2 nên đầu ra cũng cần ba.
Sắp xếp không đồng nghĩa loại giá trị trùng.
Hai độ dài khác nhau vẫn hợp lệ.
Số âm so sánh được như các số nguyên khác.
Lời giải
B có hai số 2 và C có một số 2. Trộn phải giữ đủ cả ba lần, nên chỉ còn một số 2 là đã mất dữ liệu dù dãy vẫn có vẻ tăng.
Đang học