[Cánh diều] Trắc nghiệm Tin học 7 bài 4 Sắp xếp nổi bọt

[Cánh diều] Trắc nghiệm Tin học 7 bài 4 Sắp xếp nổi bọt

1. Trong thuật toán nổi bọt, nếu ta muốn sắp xếp mảng theo thứ tự tăng dần, điều kiện để hoán đổi hai phần tử a và b liền kề là gì?
2. Trong thuật toán sắp xếp nổi bọt, ở mỗi lượt duyệt qua danh sách, phần tử lớn nhất chưa được sắp xếp sẽ được đưa về vị trí nào?
3. Thuật toán nổi bọt có ưu điểm gì so với các thuật toán sắp xếp khác như Selection Sort trong một số trường hợp?
4. Mục đích chính của việc sử dụng cờ hiệu (flag) trong phiên bản tối ưu của thuật toán sắp xếp nổi bọt là gì?
5. Đâu là một hạn chế chính của thuật toán sắp xếp nổi bọt khi so sánh với các thuật toán hiệu quả hơn như QuickSort hay MergeSort?
6. Trong ngôn ngữ lập trình Python, đoạn mã giả sau đây thực hiện chức năng gì? (Giả sử arr là một danh sách và n là độ dài của danh sách)
7. Mỗi lần hoàn thành một lượt duyệt trong thuật toán sắp xếp nổi bọt (sắp xếp tăng dần), phần tử nào chắc chắn đã ở đúng vị trí cuối cùng của nó trong mảng đã sắp xếp?
8. Khi sử dụng thuật toán sắp xếp nổi bọt, nếu một lượt duyệt không thực hiện bất kỳ phép hoán đổi nào, điều này có ý nghĩa gì?
9. Nếu chúng ta muốn sắp xếp một mảng theo thứ tự giảm dần bằng thuật toán nổi bọt, ta cần thay đổi điều kiện so sánh như thế nào?
10. Sắp xếp nổi bọt có thể được coi là hiệu quả khi nào?
11. Độ phức tạp không gian (space complexity) của thuật toán sắp xếp nổi bọt là bao nhiêu?
12. Việc nổi bọt của các phần tử lớn nhất lên cuối mảng trong thuật toán nổi bọt là do cơ chế nào?
13. Xét mảng: [5, 1, 4, 2, 8]. Sau lượt duyệt đầu tiên của thuật toán sắp xếp nổi bọt (sắp xếp tăng dần), mảng sẽ có dạng nào?
14. Nếu mảng ban đầu là [9, 8, 7, 6, 5], sau lượt duyệt thứ ba của thuật toán sắp xếp nổi bọt (sắp xếp tăng dần), mảng sẽ có dạng nào?
15. Độ phức tạp thời gian của thuật toán sắp xếp nổi bọt trong trường hợp tốt nhất (ví dụ: mảng ban đầu đã được sắp xếp theo thứ tự tăng dần) là bao nhiêu, nếu có cờ hiệu để dừng sớm?
16. Độ phức tạp thời gian của thuật toán sắp xếp nổi bọt trong trường hợp xấu nhất (ví dụ: mảng ban đầu được sắp xếp theo thứ tự giảm dần) là bao nhiêu?
17. Phát biểu nào sau đây mô tả đúng nhất cách hoạt động của một cặp so sánh và hoán đổi trong thuật toán nổi bọt?
18. Thuật toán sắp xếp nổi bọt thuộc nhóm thuật toán sắp xếp nào?
19. Xét mảng [3, 1, 2]. Sau lượt duyệt thứ hai của thuật toán sắp xếp nổi bọt (sắp xếp tăng dần), mảng sẽ có dạng nào?
20. Trong một lượt duyệt của thuật toán nổi bọt, nếu ta có một mảng [A, B, C, D] và thực hiện so sánh (A, B), (B, C), (C, D). Nếu A>B và B<C và C<D, thì sau lượt duyệt này, thứ tự các phần tử có thể thay đổi như thế nào (giả sử không có hoán đổi nào khác)?
21. Khi thực hiện sắp xếp nổi bọt cho mảng [4, 1, 3, 2] theo thứ tự tăng dần, sau bao nhiêu lượt duyệt mảng mới được sắp xếp hoàn chỉnh?
22. Trong sắp xếp nổi bọt, mỗi phần tử có thể di chuyển tối đa bao nhiêu vị trí trong một lượt duyệt?
23. Phát biểu nào sau đây KHÔNG đúng về thuật toán sắp xếp nổi bọt?
24. Nếu mảng có n phần tử, số lượng phép so sánh tối đa mà thuật toán nổi bọt thực hiện là bao nhiêu?
25. Để sắp xếp một mảng theo thứ tự tăng dần bằng thuật toán nổi bọt, ta cần thực hiện bao nhiêu lượt duyệt qua mảng, nếu mảng có n phần tử?