Giải sách bài tập Tin học lớp 7 Bài 16: Thuật toán sắp xếp
Câu 16.1 trang 55 SBT Tin học 7: Em hãy sắp xếp các bước sau đây theo đúng thứ tự để hoàn thành công việc hoán đổi chất lỏng đựng trong hai cốc A và B (sử dụng cốc C không đựng gì là cốc trung gian).
a) Đổ chất lỏng từ cốc B sang cốc A.
b) Đổ chất lỏng từ cốc C sang cốc B.
c) Đổ chất lỏng từ cốc A sang cốc C.
Lời giải:
Các bước: c → a → b
Câu 16.2 trang 55 SBT Tin học 7: Hoán đổi hai vị trí hai phần tử liên tiếp khi chúng không đúng thứ tự là cách sắp xếp của thuật toán nào?
A. Nổi bọt B. Chọn
Lời giải:
Đáp án đúng là: A
Hoán đổi hai vị trí hai phần tử liên tiếp khi chúng không đúng thứ tự là cách sắp xếp của thuật toán nổi bọt.
Câu 16.3 trang 55 SBT Tin học 7: Tìm phần tử nhỏ nhất trong dãy và đổi chỗ phần tử này với phần tử đầu tiên của dãy chưa được sắp xếp là ý tưởng của thuật toán nào?
A. Nổi bọt B. Chọn
Lời giải:
Đáp án đúng là: B
Tìm phần tử nhỏ nhất trong dãy và đổi chỗ phần tử này với phần tử đầu tiên của dãy chưa được sắp xếp là ý tưởng của thuật toán chọn.
Câu 16.4 trang 55 SBT Tin học 7: Dùng thuật toán sắp xếp nổi bọt để sắp xếp một dãy số tăng dần. Mỗi vòng lặp sẽ duyệt các phần tử từ cuối danh sách đến đầu danh sách. Kết thúc vòng lặp thứ nhất, phần tử đầu tiên sẽ có giá trị:
A. Nhỏ nhất trong dãy số
B. Lớn nhất trong dãy số
C. Không thay đổi
D. Bằng nửa giá trị của phần tử liền trước.
Lời giải:
Đáp án đúng là: A
Kết thúc vòng lặp thứ nhất, phần tử đầu tiên sẽ có giá trị: Nhỏ nhất trong dãy số
Câu 16.5 trang 56 SBT Tin học 7: Sau vòng lặp thứ nhất của thuật toán sắp xếp chọn, phương án nào đúng?
A. Phần tử có giá trị nhỏ nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.
B. Phần tử có giá trị lớn nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.
C. Các phần tử liền kề được hoán đổi.
D. Phần tử có giá trị nhỏ nhất sẽ đổi vị trí cho phần tử cuối dãy.
Lời giải:
Đáp án đúng là: A
Phần tử có giá trị nhỏ nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.
Câu 16.6 trang 56 SBT Tin học 7: Các nhiệm vụ để thực hiện sắp xếp gồm:
A. So sánh
B. Đổi chỗ
C. So sánh và đổi chỗ
D. Đổi chỗ và xóa
Lời giải:
Đáp án đúng là: C
Các nhiệm vụ để thực hiện sắp xếp gồm: So sánh và đổi chỗ.
Câu 16.7 trang 56 SBT Tin học 7: Cho một dãy các quân bài như sau:
Bạn An sắp xếp các quân bài bằng cách tráo đổi vị trí theo các vòng lặp như trong các hình sau:
a) Em hãy cho biết biện An dùng thuật toán nào để sắp xếp?
b) Em hãy mô phỏng lại thuật toán trên với các quân bài trong Hình 16.5
Lời giải:
a) An sắp xếp theo thuật toán sắp xếp nổi bọt.
b) Mô phỏng thuật toán sắp xếp nổi bọt với các quân bài.
Vòng lặp thứ nhất: So sánh quân 6 và quân 9, vì 9 > 6 không đúng thứ tự nên quân 6 đồi chỗ cho quân 9. So sánh quân 6 với quân 10, vì 10 > 6 không đúng thứ tự nên quân 6 đổi chỗ cho quân 10. So sánh tiếp quân 6 với quân 4, vì 4 < 6 đúng thứ tự nên giữ nguyên vị trí. Kết thúc vòng lặp thứ tự các quân bài như sau: Quân 4, quân 6, quân 10, quân 9.
Vòng lặp thứ hai: So sách quân 9 với quân 10, Vì 10 > 9 không đúng thứ tự nên quân 9 đổi chỗ cho quân 10. So sánh quân 9 với quân 6, vì 6 < 9 đúng thứ tự nên giữ nguyên vị trí. Kết thúc vòng lặp thứ tự các quân bài như sau: Quân 4, quân 6, quân 9, quân 10.
Vòng lặp thứ ba: So sánh quân 10 với quân 9, vì 9 < 10 đúng thứ tự nên giữ nguyên vị trí. Vậy dãy đã được sắp xếp.
Câu 16.8 trang 58 SBT Tin học 7: Nếu sử dụng thuật toán sắp xếp chọn để sắp xếp dãy số 8, 22, 7, 19, 5 theo thứ tự tăng dần thì số lần thực hiện thao tác hoán đổi giá trị trong vòng lặp thứ nhất là:
A. 2
B. 3
C. 4
D. 5
Lời giải:
Đáp án đúng là: A
Nếu sử dụng thuật toán sắp xếp chọn để sắp xếp dãy số 8, 22, 7, 19, 5 theo thứ tự tăng dần thì số lần thực hiện thao tác hoán đổi giá trị trong vòng lặp thứ nhất là: 2.
8 < 22 nên không hoán đổi.
8 > 7 nên hoán đổi vị trí. Dãy: 7, 22, 8, 19, 5
7 < 19 nên không hoán đổi.
7 > 5 nên hoán đổi vị trí. Dãy: 5, 22, 8, 19, 7.
Câu 16.9 trang 58 SBT Tin học 7: Cho sãy số sau: 15, 20, 10, 18. Bạn Minh sử dụng thuật toán sắp xếp nổi bọt để sắp xếp dãy số tăng dần. Mỗi vòng lặp sẽ duyệt từ phần tử cuối đến phần tử đầu tiên. Em hãy chọn phương án mô tả đúng dãy số sắp xếp sau mỗi vòng lặp.
A. 15, 20, 10, 18 → 10, 15, 18, 20 →10, 15, 18, 20
B. 15, 20, 10, 18 → 10, 20, 15, 18 → 10, 15, 20, 18 → 10, 15, 18, 20.
C. 15, 20, 10, 18 → 15, 10, 20, 18 → 10, 15, 18, 20.
D. 15, 20, 10, 18 → 10, 15, 20, 18 → 10, 15, 18, 20.
Lời giải:
Đáp án đúng là: D
15, 20, 10, 18 → 10, 15, 20, 18 → 10, 15, 18, 20.
Câu 16.10 trang 59 SBT Tin học 7: Em hãy dùng thuật toán sắp xếp nổi bọt sắp xếp dãy số dưới đây theo thứ tự tăng dần, mỗi vòng lặp duyệt từ phần tử cuối về đầu: 83, 5, 8, 12, 65, 72, 71.
Lời giải:
Mô phỏng các bước sắp xếp dãy số 83, 5, 8, 12, 65, 72, 71 theo thuật toán nổi bọt:
Vòng lặp 1: 83, 5, 8, 12, 65, 72, 71 → 5, 83, 8, 12, 65, 71, 72.
Vòng lặp 2: 5, 83, 8, 12, 65, 71, 72 → 5, 8, 83, 12, 65, 71, 72.
Vòng lặp 3: 5, 8, 83, 12, 65, 71, 72 → 5, 8, 12, 83, 65, 71, 72.
Vòng lặp 4: 5, 8, 12, 83, 65, 71, 72 → 5, 8, 12, 65, 83, 71, 72.
Vòng lặp 5: 5, 8, 12, 65, 83, 71, 72 → 5, 8, 12, 65, 71, 83, 72.
Vòng lặp 6: 5, 8, 12, 65, 71, 83, 72 → 5, 8, 12, 65, 71, 72, 83.
Sau 6 vòng lặp thì dãy số mới được sắp xếp đúng theo yêu cầu.
Câu 16.11 trang 59 SBT Tin học 7: Em hãy quan sát Hình 16.6 và cho biết đó là cách sắp xếp theo thuật toán nào?
Vòng lặp thứ nhất:
Vòng lặp thứ hai:
Vòng lặp thứ ba:
Vòng lặp thứ tư:
Lời giải:
Hình 16.6 sử dụng cách sắp xếp theo thuật toán sắp xếp chọn.
Câu 16.12 trang 60 SBT Tin học 7: An và Khoa chơi trò chơi sắp xếp các que tính từ ngắn đến dài. Mỗi bạn có một cách sắp xếp khác nhau:
An: Tớ chọn que ngắn nhất rồi đổi vị trí với que ở vị trí đầu tiên. Tiếp tục chọn các que ngắn nhất trong các que chưa được xếp và sắp xếp chúng lần lượt vào các vị trí thứ hai, thứ ba, …
Khoa: Tớ cầm que cuối cùng, nếu que trước ngắn hơn tớ sẽ chuyển sang cầm que ngắn, ngược lại nếu que trước dài hơn tớ sẽ đổi vị trí hai que tính. Lần lượt làm như vậy đến que tính đầu tiên. Sau lượt đầu, que tính ngắn nhất sẽ được đưa về vị trí đầu tiên. Ở lượt thứ hai, que tính ngắn thứ hai sẽ được đưa đúng vào vị trí, cứ như vậy đến khi các que tính được sắp xếp theo đúng thứ tự.
a) Em hãy cho biết bạn An và Khoa dùng thuật toán gì để sắp xếp?
b) Em hãy thực hiện theo cách của An và Khoa để sắp xếp các que tính trong Hình 16.7 theo thứ tự từ ngắn đến dài. Theo em, cách sắp xếp của bạn nào nhanh hơn?
Lời giải:
a) An dùng thuật toán sắp xếp chọn, Khoa dùng thuật toán sắp nổi bọt.
b) Theo cách của An:
Theo cách của Khoa:
⇒ Vậy cách sắp xếp của An nhanh hơn cách sắp xếp của Khoa.
Câu 16.13 trang 60 SBT Tin học 7: Em hãy sử dụng thuật toán sắp xếp chọn để sắp xếp bốn thành viên trong gia đình bạn Hải (bao gồm: bố, mẹ, Hải và em gái) (Hình 16.8) theo thứ tự tăng dần của chiều cao.
Lời giải:
Vòng lặp thứ nhất: Em gái là người thấp nhất nên đổi chỗ em gái với bố. Thứ tự mới bây giờ là em gái, bố, mẹ, Hải.
Vòng lặp thứ hai: Hải là người thấp nhất trong dãy còn lại nên Hải đổi chỗ với bộ, Thứ tự mới bây giờ là em gái, Hải, mẹ, bố.
Vòng lặp thứ ba: Mẹ ở đúng vị trí nên thứ tự sắp xếp đã đúng.
Câu 16.14 trang 61 SBT Tin học 7: Em hãy quan sát dãy gồm các số: 10, 7, 3, 13, 2, 8, 5 được thay đổi vị trí theo từng bước như trong Hình 16.9
a) Em hãy cho biết dãy số được sắp xếp theo thuật toán nào?
b) Em hãy sắp xếp dãy số ban đầu theo thuật toán khác mà em đã được học. So sánh các sắp xếp của thuật toán nào nhanh hơn?
Lời giải:
a) Dãy số đã được sắp xếp theo thuật toán sắp xếp chọn.
b) Dãy số có thể sắp xếp theo thuật toán nổi bọt như sau:
Vòng lặp thứ nhất:
Vòng lặp thứ hai:
Vòng lặp thứ ba:
Vòng lặp thứ tư:
Vòng lặp thứ năm:
Vậy thuật toán sắp xếp nổi bọt sẽ cần 5 vòng lặp, trong khi đó sắp xếp theo theo thuật toán chọn sẽ cần 8 vòng lặp. Vậy thuật toán nổi bọt trong trường hợp này nhanh hơn.
Câu 16.15 trang 61 SBT Tin học 7: Điểm môn Tin học của tổ một lớp 7A được ghi trong bảng sau:
Em hãy sắp xếp lại danh sách theo thứ tự tăng dần của điểm bằng cách dùng thuật toán sắp xếp nổi bọt và sắp xếp chọn.
Lời giải:
Kết quả các vòng thực hiện sắp xếp nổi bọt để sắp xếp điểm theo thứ tự tăng dần:
Kết quả các vòng lặp thực hiện sắp xếp chọn để sắp xếp điểm theo thứ tự tăng dần:
Danh sách sẽ được sắp xếp lại như bảng sau:
Xem thêm các bài giải SBT Tin học lớp 7 Kết nối tri thức hay, chi tiết khác:
Bài 12: Định dạng đối tượng trên trang chiếu
Bài 13: Thực hành tổng hợp: Hoàn thiện bài trình chiếu
Bài 14: Thuật toán tìm kiếm tuần tự
Bài 15: Thuật toán tìm kiếm nhị phân
Bài 16: Thuật toán sắp xếp