F11. "Chọn số lớn nhất trong dãy nguồn còn lại" là một bài toán con khi thực hiện sắp xếp chọn dần. Giả sử dãy cần sắp xếp gồm 10 số. Hãy chọn câu đúng:
1) Phải giải 10 bài toán con nói trên.
2) Phải giải 9 bài toán con nói trên.
3) Phải giải 1 bài toán con nói trên.
4) Tùy theo dãy đầu vào mà số lần giải bài toán con khác nhau.
Trả lời:
2) Phải giải 9 bài toán con nói trên.
F12. Thao tác "đổi chỗ" là một việc phải làm khi thực hiện sắp xếp chọn dần. Giả sử dãy cần sắp xếp gồm 10 số. Hãy chọn câu đúng:
1) Phải thực hiện 10 lần đổi chỗ.
2) Phải thực hiện 9 lần đổi chỗ.
3) Tùy theo dãy đầu vào mà số lần đổi chỗ khác nhau.
4) Không phải đổi chỗ lần nào nếu dãy cần sắp xếp đã đúng thứ tự mong muốn.
Trả lời:
3) 4)
F13. Xét thuật toán sắp xếp bằng cách chọn dần. Hãy phát hiện câu sai:
1) Ở bước i, dãy con còn lại chưa theo thứ tự mong muốn là {ai,...,an}.
2) Ở bước i, dãy con còn lại chưa theo thứ tự mong muốn là {ai+1,...,an}.
3) Ở bước i, dãy con đã được sắp xếp là {a1, a2,...,ai}.
4) Sau bước i, dãy con đã được sắp xếp là {a1, a2, ...,ai}.
5) Ở bước i, xếp vào cuối dãy con đã được sắp xếp bằng cách đổi chỗ $a_{max}$ cho ai.
6) Ở bước i, xếp vào cuối dãy con đã được sắp xếp bằng cách đổi chỗ ai cho $a_{max}$.
Trả lời:
2) 3)
F14. Trong thuật toán sắp xếp bằng cách chọn dần, dãy đích hình thành ở đầu trái, dài thêm dần và dãy nguồn còn lại ở bên phải, ngắn đi dần. Nếu yêu cầu ngược lại, dãy đích hình thành ở đầu bên phải và dãy nguồn còn lại ở bên trái thì cần sửa lại thao tác ở các bước như thế nào.
Trả lời:
- Để dãy đích hình thành ở đầu trái thì phải đổi chỗ cho phần tử cuối dãy nguồn còn lại. Ở bước i, cuối dãy nguồn là vị trí n + 1 - i.
- Ở mỗi bước, nếu ta chọn số lớn nhất trong dãy nguồn còn lại thì kết quả sẽ là dãy tăng dần (không giảm). Nếu vẫn muốn sắp dãy giảm dần thì chọn số nhỏ nhất để đổi chỗ.
Sủa lại thao tác trong vòng lặp như sau:
a) Tìm số nhỏ nhất trong dãy nguồn còn lại {a1, a2, ...$a_{n+1-i}$} gọi là $a_{min}$
b) Đổi chỗ $a_{min}$ cho $a_{n+1-i}$