Giải bài tập Tin học lớp 7 Bài 3: Sắp xếp chọn
Khởi động trang 84 Tin học 7: Có một bó que tính dài ngắn khác nhau, em hãy xếp các que tính thành dãy từ trái sang phải theo thứ tự ngắn dần
Trả lời:
Bước 1. Que tính dài nhất cần được chuyển về vị trí thứ nhất trong dãy.
Bước 2. Que tính dài nhất trong dãy còn lại cần được chuyển về dầu dãy này.
Tiếp tục lặp lại việc “Chọn lấy que dài nhất trong dãy và đổi chỗ nó với các que còn lại: cho đến khi hết dãy.
2. Thuật toán sắp xếp chọn
Hoạt động trang 85 Tin học 7: Bài toán sắp xếp ở mục 1 trên đây có gì giống và khác với bài toán sắp xếp nếu ở phần khởi động? Ý tưởng sắp xếp ở mục 1 có gì giống và khác với ý tưởng sắp xếp em đã sử dụng ở phần khởi động?
Trả lời:
Bài toán sắp xếp ở mục 1:
Giống: Đều chọn dữ liệu lớn nhất và so sánh với những dữ liệu còn lại, nếu lớn nhất sẽ được xếp ở vị trí đầu tiên.
Khác: Sẽ khác nhau về số bước trình bày. Và đối với bài ở mục 1 được phân chia vị trí sẵn, còn mục khởi động thì không.
Ý tưởng sắp xếp của em hoàn toàn giống với ý tưởng sắp xếp của mục 1. Và khác nhau về số bước.
Luyện tập trang 86 Tin học 7: Trình bày diễn biến từng bước của thuật toán sắp xếp chọn cho dãy số 11, 70, 18, 39, 63, 52, 41, 5 theo mẫu ở Hình 1
Trả lời:
Bước 1. Số lớn nhất trong dãy số (70) cần được chuyển về vị trí thứ nhất trong dãy, do đó đổi chỗ 70 với 11. Sau bước này, vì 94 đã ở đúng vị trí mong muốn nên tiếp theo chỉ cần quan tâm đến dãy số còn lại: 11,18, 39, 63, 52, 41, 5.
Bước 2. Số lớn nhất trong dãy số còn lại (63) cần được chuyển về đầu dãy này, do đó đổi chỗ 63 với 11. Sau bước này có thêm số 63 đã ở đúng vị trí mong muốn, dãy số còn lại chưa được sắp xếp là 18, 39, 11, 52, 41, 5.
Tiếp tục lặp lại việc “Chọn lấy số lớn nhất trong dãy số còn lại và đổi chỗ nó với số đứng đầu dãy này” cho đến khi hết dãy ban đầu.
Dãy (a) |
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
a7 |
a8 |
Giải thích |
Ban đầu |
11 |
70 |
18 |
39 |
63 |
52 |
41 |
5 |
Tiếp theo đổi chỗ 70 và a1 |
Sau bước 1 |
70 |
11 |
18 |
39 |
63 |
52 |
41 |
5 |
Tiếp theo đổi chỗ 63 và a2 |
Sau bước 2 |
70 |
63 |
18 |
39 |
11 |
52 |
41 |
5 |
Tiếp theo đổi chỗ 52 và a3 |
Sau bước 3 |
70 |
63 |
52 |
39 |
11 |
18 |
41 |
5 |
Tiếp theo đổi chỗ 41 và a4 |
Sau bước 4 |
70 |
63 |
52 |
41 |
11 |
18 |
39 |
5 |
Tiếp theo đổi chỗ 39 và a5 |
Sau bước 5 |
70 |
63 |
52 |
41 |
39 |
18 |
11 |
5 |
Tiếp theo không đổi chỗ |
Sau bước 6 |
70 |
63 |
52 |
41 |
39 |
18 |
11 |
5 |
Tiếp theo không đổi chỗ |
Sau bước 7 |
70 |
63 |
52 |
41 |
39 |
18 |
11 |
5 |
Tiếp theo không đổi chỗ |
Dãy kết quả |
70 |
63 |
52 |
41 |
39 |
18 |
11 |
5 |
|
Vận dụng 1 trang 86 Tin học 7: Trong thuật toán sắp xếp chọn, khi nào không cần thực hiện thao tác “Đổi chỗ am cho ai” mà kết quả sắp xếp vẫn đúng?
Trả lời:
Ta không cần thay đổi vị trí khi vị trí đó đã là số lớn nhất hoặc bé nhất trong dãy còn lại thì không cần phải thay đổi vị trí.
Vận dụng 2 trang 86 Tin học 7: Trong thuật toán sắp xếp chọn, nếu thay “Tìm giá trị lớn nhất” bằng “Tìm giá trị nhỏ nhất” thì kết quả nhận được là dãy số có thứ tự ra sao?
Trả lời:
Nếu thay tìm giá trị lớn nhất bằng tìm giá trị nhỏ nhất thì dãy sẽ có thứ tự tăng dần (không giảm).
Câu hỏi tự kiểm tra (trang 86)
Câu 1 trang 86 Tin học 7: Hãy nêu vài ví dụ bài toán sắp xếp trong thực tế và nói rõ tiêu chi sắp xếp
Trả lời:
Trong thực tế ta thường dùng thuật toán sắp xếp trong “Xếp hàng”, ta sẽ sắp xếp theo thứ tự tăng dần (không giảm).
Câu 2 trang 86 Tin học 7: Hãy tóm tắt bằng một câu trả lời cho câu hỏi: Thế nào là sắp xếp chọn?
Trả lời:
Sắp xếp chọn dần là một thuật toán mô phỏng cách sắp xếp: Chọn phần tử lớn nhất trong dãy chưa sắp xếp còn lại và xếp vào đầu dãy đó.
Xem thêm các bài giải SGK Tin học lớp 7 Cánh diều hay, chi tiết khác:
Bài 1: Tìm kiếm tuần tự
Bài 2: Tìm kiếm nhị phân
Bài 3: Sắp xếp chọn
Bài 4: Sắp xếp nổi bọt
Bài 5 : Thực hành mô phỏng các thuật toán tìm kiếm, sắp xếp