Trắc nghiệm Cánh diều Tin học 11 KHMT bài 9 Lập trình thuật toán sắp xếp nhanh

Trắc nghiệm Cánh diều Tin học 11 KHMT bài 9 Lập trình thuật toán sắp xếp nhanh

1. Trong thuật toán sắp xếp nhanh, bước phân hoạch (partitioning) có vai trò gì?
2. Thuật toán sắp xếp nhanh có phải là thuật toán sắp xếp ổn định (stable sort) không?
3. Trong một triển khai Quick Sort sử dụng đệ quy, điều kiện dừng của đệ quy là gì?
4. Nếu ta có một mảng gồm các phần tử [7, 2, 1, 6, 8, 5, 3, 4] và chọn phần tử đầu tiên (7) làm chốt, sau bước phân hoạch đầu tiên, vị trí của phần tử chốt (7) có thể là ở đâu?
5. Biện pháp nào sau đây giúp giảm thiểu nguy cơ rơi vào trường hợp xấu nhất của thuật toán sắp xếp nhanh?
6. Điểm mạnh chính của thuật toán sắp xếp nhanh so với các thuật toán sắp xếp khác như Bubble Sort hay Insertion Sort là gì?
7. Khi so sánh Quick Sort với Merge Sort về mặt độ phức tạp thời gian trung bình, Quick Sort thường được ưu tiên hơn vì sao?
8. Nếu ta áp dụng thuật toán sắp xếp nhanh cho một mảng chỉ chứa một phần tử, kết quả sẽ là gì?
9. Độ phức tạp không gian (space complexity) của thuật toán sắp xếp nhanh (sử dụng đệ quy) thường là bao nhiêu?
10. Sử dụng kỹ thuật three-way partitioning (phân hoạch ba đường) trong Quick Sort có lợi ích gì?
11. Thuật toán phân hoạch Lomuto và Hoare khác nhau ở điểm nào cơ bản nhất?
12. Độ phức tạp thời gian trường hợp xấu nhất (worst-case time complexity) của thuật toán sắp xếp nhanh là bao nhiêu?
13. Thuật toán sắp xếp nhanh (Quick Sort) lựa chọn phần tử chốt (pivot) như thế nào để đảm bảo hiệu quả tốt nhất trong trường hợp trung bình?
14. Khái niệm divide and conquer (chia để trị) được thể hiện như thế nào trong thuật toán sắp xếp nhanh?
15. Đâu KHÔNG phải là một trường hợp sử dụng thuật toán sắp xếp nhanh?
16. Nếu một mảng đã được sắp xếp tăng dần, và ta chọn phần tử đầu tiên làm chốt trong thuật toán sắp xếp nhanh, điều gì sẽ xảy ra?
17. Khi nào thuật toán sắp xếp nhanh hoạt động kém hiệu quả nhất?
18. Trong thuật toán sắp xếp nhanh, nếu ta chọn phần tử chốt là phần tử lớn nhất trong mảng, điều gì sẽ xảy ra trong bước phân hoạch?
19. Chiến lược chọn chốt nào sau đây KHÔNG được khuyến khích trong thuật toán sắp xếp nhanh vì dễ dẫn đến trường hợp xấu nhất?
20. Khái niệm đệ quy (recursion) được áp dụng như thế nào trong thuật toán sắp xếp nhanh?
21. Trong quá trình phân hoạch của thuật toán sắp xếp nhanh, nếu ta sử dụng hai con trỏ i và j bắt đầu từ hai đầu mảng và di chuyển vào trong, khi nào ta thực hiện hoán đổi?
22. Tại sao việc sử dụng đệ quy trong Quick Sort có thể dẫn đến tràn ngăn xếp (stack overflow) với các mảng rất lớn?
23. Trong một số triển khai của Quick Sort, khi kích thước mảng con trở nên đủ nhỏ (ví dụ: dưới 10 phần tử), người ta thường chuyển sang sử dụng Insertion Sort. Tại sao lại làm vậy?
24. Độ phức tạp thời gian của thuật toán sắp xếp nhanh khi tất cả các phần tử trong mảng là giống nhau là bao nhiêu?
25. Độ phức tạp thời gian trường hợp trung bình (average-case time complexity) của thuật toán sắp xếp nhanh là bao nhiêu?