Giải bài tập Tin học lớp 7 Bài 4: Sắp xếp nổi bọt
Khởi động trang 87 Tin học 7: Làm thế nào để cho máy tính biết một dãy đã có thứ tự tăng dần?
Trả lời:
Để máy tính dãy có thứ tự tăng dần thì máy tính sẽ thực hiện phép so sánh hai số liền kề nhau.
1. Ý tưởng sắp xếp bằng cách đổi chỗ các phần tử liền kề
Hoạt động 1 trang 87 Tin học 7: Giả sử có một dãy hộp kẹo, mỗi hộp chứa một số kẹo nào đó. Có một chú robot chỉ biết làm hai thao tác:
– So sánh số kẹo trong hai hộp cạnh nhau.
– Hoán đổi vị trí hai hộp kẹo cạnh nhau.
Theo em, chú robot phải làm thế nào để xếp lại các hộp sao cho số kẹo trong các hộp tăng dần?
Trả lời:
Ở lượt thứ nhất, so sánh hai hộp đầu tiên, nếu số kẹo ở hộp đúng trước lớn hơn số kẹo ở hộp đứng sau thì đổi vị trí hai hộp này cho nhau. Tiếp tục làm như vậy với hộp thứ hai và thứ ba, với hộp thứ ba và thứ tư, … cho đến hết dãy hộp kẹo là hết một lượt.
Tiếp tục các lượt thứ hai, thứ ba theo cách như lượt thứ nhất, cứ lặp lại như vậy cho đến khi gặp một lượt mà suốt cả lượt đó robot không phải đổi cho hai hộp nào thì dãy đã được sắp xếp xong, robot kết thúc công việc.
2. Thuật toán sắp xếp nổi bọt
Hoạt động 2 trang 89 Tin học 7:
1) Trong thuật toán sắp xếp nổi bọt thì dấu hiệu để biết dãy chưa sắp xếp xong là gì?
2) Theo em, có phải Hình 2 đã mô tả chi tiết một lượt robot thực hiện so sánh các cặp
phần tử liền kề và đổi chỗ khi chúng trái thứ tự mong muốn không?
Trả lời:
1) Dấu hiệu nhận biết dãy chưa sắp xếp xong:
Nếu dãy chưa được sắp xếp đúng thứ tự thì trong dãy sẽ còn cặp phần tử liền kề không đúng thứ tự tăng dần hoặc giảm dần.
2) Hình mô tả khá chi tiết về cách thực hiện của robot.
Ta có thể bổ sung thêm:
Nếu vị trí ai = ai+1, giữ nguyên vị trí.
Và lặp lại cho đến nhánh.
Luyện tập trang 89 Tin học 7: Hãy mô phỏng thuật toán sắp xếp nổi bọt cho một dãy số nguyên tùy chọn, không ít hơn 5 phần tử. Sau bao nhiêu lượt đi từ đầu đến cuối dãy để so sánh và đổi chỗ thì thuật toán kết thúc? Tổng số có bao nhiêu lần đổi chỗ hai phần tử liền kề?
Trả lời:
Ta có dãy số: 5, 2, 4, 1, 3. Sắp xếp giảm dần.
Bước 1. So sánh số 5 và 2. Ta thấy số 5 lớn hơn 2. Nên ta giữ nguyên kết quả. Dãy số sau khi đổi: 5, 2, 4, 1, 3.
Bước 2. So sánh số 2 và 4. Ta thấy số 4 lớn hơn 2 và ta tiến hành đổi chỗ số 4 và 2. Dãy số sau khi đổi: 5, 4, 2, 1, 3.
Bước 3. So sánh số 2 và 1. Ta thấy số 2 lớn hơn 1, ta giữ nguyên dãy số: 5, 4, 2, 1, 3.
Bước 4. So sánh số 1 và 3, ta thấy số 3 lớn hơn số 1, ta tiến hành đổi chỗ số 3 và số 1. Dãy số sau khi đổi: 5, 4, 2, 3, 1.
Bước 5. Tiến hành duyệt dãy số một lần nữa để chắc chắn dãy số đã được sắp xếp giảm dần. So sánh số 5 và 4, số 5 lớn hơn 4 giữ nguyên, dãy thu được: 5, 4, 2, 3, 1.
Bước 6. So sánh số 4 và 2, số 4 lớn hơn 2 giữ nguyên.
Bước 7. So sánh số 2 và 3, số 3 lớn hơn số 2, ta tiến hành đổi vị trí số 2 và 3. Dãy số thu được: 5, 4, 3, 2, 1.
Bước 8. So sánh số 2 và 1, số 2 lớn hơn số 1, nên ta giữ nguyên.
Ta sẽ đi tám lượt đi thì thuật toán mới kết thúc.
Tổng số lần đổi vị trí phần tử là 3 lần.
Vận dụng trang 89 Tin học 7: Theo em, vì sao thuật toán sắp xếp trên lại có tên là sắp xếp nổi bọt?
Trả lời:
Vì thuật toán nổi bọt hay còn gọi là sắp xếp nổi bọt. Đây là một thuật ngữ đơn giản, được tiến hành dựa trên việc so sánh các phần tử đứng ngay cạnh nhau. Đồng thời, người thực hiện cũng sẽ tiến hành so sánh sau khi đã trao đổi thứ tự của các phần tử.
Câu hỏi tự kiểm tra (trang 89)
Câu 1 trang 89 Tin học 7: Trong thuật toán sắp xếp nổi bọt, khi nào hai phần từ liền kề được đổi chổ?
Trả lời:
Nếu vị trí ai > ai+1, thì đổi chỗ ai cho ai+1 đối với sắp xếp tăng dần.
Nếu vị trí ai < ai+1, thì đổi chỗ ai cho ai+1 đối với sắp xếp giảm dần.
Câu 2 trang 89 Tin học 7: Thuật toán sắp xếp nổi bọt kết thúc khi nào?
Trả lời:
Thuật toán kết thúc khi tất cả phần tử được sắp xếp theo thứ tự tăng dần hoặc giảm dần.
Câu 3 trang 89 Tin học 7: Khi nào thực hiện thuật toán sắp xếp nổi bọt chỉ cần một lượt so sánh các cặp phần tử liền kề và đổi chổ?
Trả lời:
Khi các phần tử sắp xếp không theo thứ tự ta nên dùng sắp xếp nổi bọt để sắp xếp phần tử theo thứ tự tăng dần hoặc giảm dần.
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