Tin học lớp 7 Bài 4: Sắp xếp nổi bọt
A. Lý thuyết Tin học 7 Bài 4: Sắp xếp nổi bọt
1. Ý tưởng sắp xếp bằng cách đổi chỗ các phần tử liền kề
Ví dụ: Cho dãy 5 hộp kẹo với số lượng kẹo trong mỗi hộp khác nhau, tương ứng là:
Hình 4.1: Mô phỏng sắp xếp bằng đổi chỗ các phần tử liền kề
2. Thuật toán sắp xếp nổi bọt
Trong ví dụ trên, robot thực hiện số lượt di chuyển từ đầu đến cuối dãy để so sánh và đổi chỗ các cặp phần tử liền kề nếu chưa đúng thứ tự.
Ở mỗi lượt, robot thực hiện:
– Xuất phát từ đầu dãy, i = 1, xét cặp (a1, a2), nếu a1 > a2 (trái thứ tự mong muốn) thì đổi chỗ cho nhau; trái lại không cần làm gì.
– Dịch sang phải một vị trí, xét cặp (a2, a3); so sánh và đổi chỗ nếu cần.
– Quá trình tiếp tục, dịch sang phải một vị trí, xét cặp (ai+1, ai+2), so sánh và đổi chỗ nếu cần thiết.
– Khi hết dãy thì xong một lượt xét các cặp số kề nhau để đổi chỗ.
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ự. Như vậy robot sẽ phải thực hiện cho đến khi không còn cặp liền kề (ai, ai+1) trái mong muốn nữa.
⇒ Kết luận: Thuật toán sắp xếp nổi bọt thực hiện nhiều lượt so sánh và đổi chỗ các cặp phần tử liền kề cho đến khi không còn bất kì cặp phần tử liền kề (ai, ai+1) nào trái thứ tự mong muốn.
B. Bài tập trắc nghiệm Tin học 7 Bài 4: Sắp xếp nổi bọt
Câu 1. Cho dãy 2,4,3,8,1. Để sắp xếp dãy tăng dần theo thuật toán sắp xếp nổi bọt, ở bước đầu tiên hai phần tử đổi chỗ cho nhau là:
A. 4 và 3
B. 2 và 4
C. 8 và 1
D. 2 và 1
Hướng dẫn giải
Đáp án đúng là: A
Để sắp xếp dãy tăng dần theo thuật toán sắp xếp nổi bọt, ở bước đầu tiên hai phần tử đổi chỗ cho nhau là: 4 và 3
Câu 2. Cho dãy 2,4,3,8,1. Để sắp xếp dãy tăng dần theo thuật toán sắp xếp nổi bọt, phần tử 8 có bao nhiêu lần đổi chỗ?
A. 0
B. 1
C. 2
D. 3
Hướng dẫn giải
Đáp án đúng là: B
Để sắp xếp dãy tăng dần theo thuật toán sắp xếp nổi bọt, phần tử 8 có 1 lần đổi chỗ, đổi chỗ cho phần tử 1 để đứng ở vị trí cuối cùng của dãy.
Câu 3. Cho dãy 2,4,3,8,9. Để sắp xếp dãy tăng dần theo thuật toán sắp xếp nổi bọt, phần tử 9 có bao nhiêu lần đổi chỗ?
A. 0
B. 1
C. 2
D. 3
Hướng dẫn giải
Đáp án đúng là: A
Để sắp xếp dãy tăng dần theo thuật toán sắp xếp nổi bọt, phần tử 9 có 0 lần đổi chỗ, vì phần tử 9 là phần tử lớn nhất và đã đứng ở vị trí cuối cùng của dãy.
Câu 4. Trong thuật toán sắp xếp nổi bọt lặp khi:
A. Dãy chưa sắp xếp xong=sai.
B. Số lần lặp bằng số phần tử của dãy.
C. Các phần tử đã nằm đúng thứ tự mong muốn trong dãy
D. Dãy chưa sắp xếp xong=đúng.
Hướng dẫn giải
Đáp án đúng là:D
Trong thuật toán sắp xếp nổi bọt lặp khi: Dãy chưa sắp xếp xong=đúng.
Câu 5. Trong thuật toán sắp xếp nổi bọt lặp khi có cặp phần tử trái thứ tự mong muốn thì:
A. Không cần làm gì.
B. Chuyển xuống cuối dãy.
C. Đổi chỗ cho nhau.
D. Tất cả đều sai.
Hướng dẫn giải
Đáp án đúng là: C
Trong thuật toán sắp xếp nổi bọt lặp khi có cặp phần tử trái thứ tự mong muốn thì đổi chỗ cho nhau.
Câu 6. 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à:
A. Vẫn còn cặp phần tử liền kề không đúng thứ tự mong muốn.
B. Không còn cặp phần tử nào cần đổi chỗ.
C. Chưa xét đến phần tử cuối cùng.
D. Chưa đủ số lần đổi chỗ.
Hướng dẫn giải
Đáp án đúng là: A
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à: Vẫn còn cặp phần tử liền kề không đúng thứ tự mong muốn.
Câu 7. Thuật toán sắp xếp nổi bọt kết thúc khi:
A. Đã xét đến phần tử gần cuối cùng của dãy.
B. Các phần tử đã nằm đúng thứ tự mong muốn trong dãy, không còn bất kì cặp liền kề nào trái thứ tự mong muốn, tức là không còn xảy ra đổi chỗ lần nào nữa.
C. Vẫn còn nhiều cặp phần tử liền kề không đúng thứ tự mong muốn.
D. Khi hai phần tử liền kề nằm chưa đúng với thứ tự mong muốn.
Hướng dẫn giải
Đáp án đúng là: B
Thuật toán sắp xếp nổi bọt kết thúc khi:
Các phần tử đã nằm đúng thứ tự mong muốn trong dãy, không còn bất kì cặp liền kề nào trái thứ tự mong muốn, tức là không còn xảy ra đổi chỗ lần nào nữa.
Câu 8. 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ỗ?
A. Khi hai phần tử liền kề nằm đúng với thứ tự mong muốn.
B. Khi hai phần tử liền kề nằm chưa đúng với thứ tự mong muốn.
C. Khi các phần tử liền kề đã nằm đúng với thứ tự mong muốn.
D. Tất cả đều sai.
Hướng dẫn giải
Đáp án đúng là: B
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ỗ khi hai phần tử liền kề nằm chưa đúng với thứ tự mong muốn.
Câu 9. 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ỗ?
A. Khi các phần tử liền kề đã nằm đúng với thứ tự mong muốn.
B. không còn bất kì cặp liền kề nào trái thứ tự mong muốn.
C. Khi dãy số chỉ có một cặp liền kề nằm trái với thứ tự mong muốn và sau đó không còn bất kì lượt đổi chỗ nào nữa.
D. Tất cả đều sai.
Hướng dẫn giải
Đáp án đúng là: C
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ỗ khi dãy số chỉ có một cặp liền kề nằm trái với thứ tự mong muốn và sau đó không còn bất kì lượt đổi chỗ nào nữa.
Câu 10. Số lần đổi chỗ của các phần tử liền kề trong thuật toán sắp xếp nổi bọt phụ thuộc vào:
A. Số phần tử của dãy.
B. Số cặp phần tử liền kề nằm trái với thứ tự mong muốn.
C. Số phần tử dương của dãy.
D. Số các phần tử liền kề đã nằm đúng với thứ tự mong muốn.
Hướng dẫn giải
Đáp án đúng là: B
Số lần đổi chỗ của các phần tử liền kề trong thuật toán sắp xếp nổi bọt phụ thuộc vào:
Số cặp phần tử liền kề nằm trái với thứ tự mong muốn.
Câu 11. Trong thuật toán sắp xếp nổi bọt khi có cặp phần tử trái thứ tự mong muốn thì đổi chỗ cho nhau, trái lại thì:
A. Không cần làm gì.
B. Chuyển xuống cuối dãy.
C. Đổi chỗ cho nhau.
D. Tất cả đều sai.
Hướng dẫn giải
Đáp án đúng là: A
Trong thuật toán sắp xếp nổi bọt khi có cặp phần tử trái thứ tự mong muốn thì đổi chỗ cho nhau, trái lại thì không cần làm gì.
Câu 12. Điền vào dấu …trong phát biểu sau: “Trong thuật toán sắp xếp nổi bọt lặp khi có cặp phần tử trái thứ tự mong muốn thì đổi chỗ cho nhau, trái lại thì không cần làm gì. Sau đó …..một vị trí để xét cặp tiếp theo, so sánh và đổi chỗ nếu cần.”
A. Dịch sang phải.
B. Dịch sang trái.
C. Chuyển về vị trí đầu tiên.
D. Chuyển đến vị trí cuối cùng.
Hướng dẫn giải
Đáp án đúng là: A
Trong thuật toán sắp xếp nổi bọt lặp khi có cặp phần tử trái thứ tự mong muốn thì đổi chỗ cho nhau, trái lại thì không cần làm gì. Sau đó dịch sang phải một vị trí để xét cặp tiếp theo, so sánh và đổi chỗ nếu cần.
Câu 13. Để sắp xếp dãy 1,4,2,6 theo thứ tự tăng dần bằng thuật toán nổi bọt thì có bao nhiêu lần đổi chỗ hai phần tử liền kề:
A. 0
B. 1
C. 2
D. 3
Hướng dẫn giải
Đáp án đúng là: B
Chỉ có 1 lần đổi chỗ của phần tử 4 và 2→ dãy1,2,4,6 đã được sắp xếp như mong muốn.
Câu 14. Để sắp xếp dãy 4,3,2,1 theo thứ tự giảm dần bằng thuật toán nổi bọt thì có bao nhiêu lần đổi chỗ hai phần tử liền kề :
A. 0
B. 1
C. 2
D. 3
Hướng dẫn giải
Đáp án đúng là: A
Vì dãy đã được sắp xếp theo thứ tự giảm dần.
Câu 15. Khẳng định nào sau đây là sai:
A. Trong thuật toán sắp xếp nổi bọt khi có cặp phần tử trái thứ tự mong muốn thì đổi chỗ cho nhau, trái lại thì không cần làm gì.
B. Trong thuật toán sắp xếp nổi bọt lặp khi: Dãy chưa sắp xếp xong=sai.
C. Số lần đổi chỗ của các phần tử liền kề trong thuật toán sắp xếp nổi bọt phụ thuộc vào số cặp phần tử liền kề nằm trái với thứ tự mong muốn
D. Thuật toán sắp xếp nổi bọt kết thúc khi các phần tử đã nằm đúng thứ tự mong muốn trong dãy, không còn bất kì cặp liền kề nào trái thứ tự mong muốn, tức là không còn xảy ra đổi chỗ lần nào nữa.
Hướng dẫn giải
Đáp án đúng là: B
Trong thuật toán sắp xếp nổi bọt lặp khi: Dãy chưa sắp xếp xong=đúng.
Xem thêm các bài tóm tắt lý thuyết Tin học 7 Cánh diều hay, chi tiết khác:
Lý thuyết Tin học 7 Bài 1: Tìm kiếm tuần tự
Lý thuyết Tin học 7 Bài 2: Tìm kiếm nhị phân
Lý thuyết Tin học 7 Bài 3: Sắp xếp chọn
Lý thuyết Tin học 7 Bài 4: Sắp xếp nổi bọt
Lý thuyết Tin học 7 Bài 5: Thực hành mô phỏng các thuật toán tìm kiếm, sắp xếp