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

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

1. Sắp xếp nổi bọt có ưu điểm gì khi nói về việc triển khai đơn giản và dễ hiểu?
2. Cấu trúc dữ liệu nào thường được sử dụng để biểu diễn danh sách các phần tử cần sắp xếp bằng thuật toán nổi bọt?
3. Độ phức tạp thời gian (time complexity) của thuật toán sắp xếp nổi bọt trong trường hợp xấu nhất là bao nhiêu, với N là số phần tử của danh sách?
4. Trong thuật toán sắp xếp nổi bọt, nếu danh sách ban đầu là [1, 2, 3, 4, 5], sau bao nhiêu lượt duyệt đầy đủ (pass) danh sách sẽ được coi là đã sắp xếp?
5. Số lượng phần tử cần so sánh trong lượt duyệt thứ k (bắt đầu từ k=1) của thuật toán sắp xếp nổi bọt trên danh sách N phần tử là bao nhiêu?
6. Xét danh sách [4, 1, 3, 2]. Sau lượt duyệt đầu tiên của thuật toán sắp xếp nổi bọt (tăng dần), danh sách sẽ có dạng nào?
7. Số lần so sánh tối đa trong thuật toán sắp xếp nổi bọt cho một danh sách có N phần tử, khi danh sách ban đầu chưa được sắp xếp là bao nhiêu?
8. 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 nổi lên vị trí cuối cùng. Điều này đúng với loại sắp xếp nào?
9. Điểm yếu chính của thuật toán sắp xếp nổi bọt so với các thuật toán sắp xếp hiệu quả hơn như QuickSort hay MergeSort là gì?
10. Thuật toán sắp xếp nổi bọt có thể được áp dụng cho loại dữ liệu nào?
11. Trong thuật toán sắp xếp nổi bọt, mỗi lượt duyệt đảm bảo rằng phần tử nào sẽ được đặt đúng vị trí cuối cùng của nó trong danh sách đã sắp xếp?
12. Giả sử có một cờ đã đổi chỗ (swapped flag) được sử dụng trong thuật toán nổi bọt. Nếu trong một lượt duyệt, cờ này không được bật lên, điều này có ý nghĩa gì?
13. Trong thuật toán sắp xếp nổi bọt, nếu ta muốn sắp xếp một danh sách theo thứ tự giảm dần, điều kiện so sánh giữa hai phần tử liền kề `a` và `b` (với `a` đứng trước `b`) sẽ là gì để thực hiện đổi chỗ?
14. Trong trường hợp nào thuật toán sắp xếp nổi bọt hoạt động hiệu quả nhất về số lần so sánh?
15. Nếu chúng ta có danh sách [9, 8, 7, 6, 5] và áp dụng sắp xếp nổi bọt tăng dần, sau lượt duyệt thứ ba, phần tử nào sẽ nằm ở vị trí thứ ba từ cuối lên (tức là vị trí N-2, với N=5)?
16. Khi so sánh hai phần tử liền kề a và b trong thuật toán sắp xếp nổi bọt tăng dần, nếu a > b thì hành động tiếp theo là gì?
17. Thuật toán sắp xếp nổi bọt có được coi là thuật toán sắp xếp ổn định (stable sort) không?
18. Sắp xếp nổi bọt thuộc loại thuật toán sắp xếp nào?
19. Trong một lần triển khai sắp xếp nổi bọt, có thể tối ưu hóa bằng cách nào để giảm số lượt duyệt khi danh sách đã được sắp xếp?
20. Độ 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 (danh sách đã sắp xếp) là bao nhiêu?
21. Khi thực hiện sắp xếp nổi bọt cho danh sách [3, 1, 4, 1, 5, 9, 2, 6], sau hai lượt duyệt (theo chiều tăng dần), phần tử nào chắc chắn nằm ở vị trí cuối cùng và vị trí áp cuối của danh sách đã sắp xếp?
22. Nếu danh sách ban đầu là [5, 4, 3, 2, 1] và ta áp dụng sắp xếp nổi bọt tăng dần, số lần đổi chỗ tối đa sẽ xảy ra trong lượt duyệt nào?
23. Nếu một thuật toán sắp xếp sử dụng kỹ thuật hoán vị các phần tử liền kề để đưa các phần tử về đúng vị trí, thì nó có thể thuộc loại nào?
24. Nếu một thuật toán sắp xếp thực hiện so sánh và hoán đổi các phần tử dựa trên vị trí của chúng trong một dãy, thuật toán đó có thể là:
25. Xét danh sách [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 (theo chiều tăng dần), các phần tử nào sẽ được đặt đúng vị trí cuối cùng của nó trong danh sách đã sắp xếp?