Trắc nghiệm Tin học 11 Kết nối tri thức KHMT bài 21 Các thuật toán sắp xếp đơn giản giúp bạn luyện tập thường xuyên để ghi nhớ lâu hơn thông qua dạng bài tập quen thuộc thường gặp trong đề thi.
Trắc nghiệm Tin học 11 Kết nối tri thức KHMT bài 21 Các thuật toán sắp xếp đơn giản
⏱ Thời gian còn lại: --:--
Tiến độ hoàn thành
0/0 câu
🏆 BẢNG VÀNG TOP 5 ĐIỂM TỐT NHẤT
Đang tải bảng xếp hạng...
Câu 1: Trong thuật toán sắp xếp nổi bọt, sau lượt duyệt đầu tiên (sắp xếp tăng dần), phần tử nào chắc chắn sẽ nằm ở đúng vị trí của nó?
- - Phần tử nhỏ nhất ở đầu dãy
- - Phần tử lớn nhất ở cuối dãy
- - Phần tử nhỏ nhất ở cuối dãy
- - Phần tử ở giữa dãy
Câu 2: Trong mã Python của sắp xếp chèn, lệnh 'j -= 1' có vai trò gì?
- - Để tăng tốc độ thực thi của chương trình
- - Để duyệt ngược lại các phần tử trong phần đã sắp xếp nhằm tìm vị trí chèn
- - Để đếm số lần hoán đổi đã thực hiện
- - Để bỏ qua phần tử đầu tiên của mảng
Câu 3: Sắp xếp chèn sử dụng biến 'key' (hoặc 'giá trị cần chèn') để làm gì?
- - Để lưu trữ giá trị nhỏ nhất của toàn bộ danh sách
- - Để lưu tạm giá trị đang được xét để tìm vị trí chèn phù hợp
- - Làm biến đếm cho vòng lặp ngoài
- - Để đánh dấu vị trí kết thúc của danh sách
Câu 4: Đâu là tên gọi khác của thuật toán sắp xếp nổi bọt trong một số tài liệu?
- - Sắp xếp đổi chỗ trực tiếp
- - Sắp xếp sàng lọc
- - Sắp xếp lồng nhau
- - Sắp xếp phân đoạn
Câu 5: Trong Python, vòng lặp 'for j in range(i + 1, n):' trong thuật toán Selection Sort dùng để làm gì?
- - Để in các phần tử của mảng ra màn hình
- - Để duyệt qua các phần tử chưa được sắp xếp nhằm tìm giá trị nhỏ nhất
- - Để đảo ngược mảng ban đầu
- - Để chèn phần tử vào vị trí đúng
Câu 6: Đặc điểm nổi bật của thuật toán sắp xếp chọn so với sắp xếp nổi bọt là gì?
- - Luôn thực hiện nhiều phép tráo đổi hơn
- - Số phép tráo đổi phần tử thường ít hơn
- - Chỉ áp dụng được cho dãy số nguyên
- - Không cần sử dụng vòng lặp
Câu 7: Cho dãy [3, 1, 4, 2]. Sau lượt duyệt đầu tiên của sắp xếp nổi bọt (tăng dần), dãy trở thành gì?
- - [1, 3, 2, 4]
- - [1, 2, 3, 4]
- - [1, 3, 4, 2]
- - [3, 1, 2, 4]
Câu 8: Trong thuật toán sắp xếp chèn, biến 'key' thường dùng để lưu giữ giá trị nào?
- - Phần tử đầu tiên của mảng
- - Phần tử nhỏ nhất của toàn bộ mảng
- - Phần tử hiện tại đang được xem xét để chèn vào vị trí đúng
- - Số lượng các phần tử đã được sắp xếp
Câu 9: Mục đích chính của việc sắp xếp dữ liệu trong khoa học máy tính là gì?
- - Để tăng dung lượng lưu trữ của bộ nhớ máy tính
- - Để làm cho dữ liệu trở nên phức tạp và bảo mật hơn
- - Để dễ dàng tìm kiếm và xử lý dữ liệu hiệu quả hơn
- - Để thay đổi giá trị của các phần tử trong danh sách
Câu 10: Số lần lặp của vòng lặp ngoài cùng trong thuật toán Bubble Sort cho dãy có n phần tử là bao nhiêu?
- - n lần
- - n + 1 lần
- - n - 1 lần
- - n / 2 lần
Câu 11: Sau lượt qué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), phần tử nào chắc chắn sẽ nằm ở vị trí đúng?
- - Phần tử nhỏ nhất của dãy
- - Phần tử lớn nhất của dãy
- - Phần tử nằm ở chính giữa dãy
- - Phần tử đầu tiên của dãy
Câu 12: Thuật toán nào sau đây hoạt động dựa trên việc chia dãy thành hai phần: 'đã sắp xếp' và 'chưa sắp xếp', sau đó liên tục lấy phần tử đầu tiên của phần 'chưa sắp xếp' để đưa vào đúng vị trí ở phần 'đã sắp xếp'?
- - Sắp xếp chọn
- - Sắp xếp chèn
- - Sắp xếp nổi bọt
- - Sắp xếp nhanh
Câu 13: Mục đích chính của các thuật toán sắp xếp trong lập trình là gì?
- - Hoán đổi vị trí của hai phần tử bất kỳ trong danh sách
- - Tổ chức lại các phần tử của danh sách theo một thứ tự xác định
- - Xóa các phần tử trùng lặp trong một danh sách cho trước
- - Tìm kiếm một phần tử có giá trị cụ thể trong danh sách
Câu 14: Trong mã giả của thuật toán sắp xếp chọn để sắp xếp tăng dần, ta cần tìm chỉ số của phần tử nào trong đoạn chưa sắp xếp?
- - Chỉ số của phần tử lớn nhất
- - Chỉ số của phần tử cuối cùng
- - Chỉ số của phần tử nhỏ nhất
- - Chỉ số của phần tử đứng giữa
Câu 15: Tại sao thuật toán sắp xếp chọn có độ phức tạp O(n^2) ngay cả khi dãy đầu vào đã được sắp xếp?
- - Vì nó vẫn phải thực hiện các phép hoán đổi liên tục
- - Vì nó vẫn phải duyệt qua phần chưa sắp xếp để tìm giá trị nhỏ nhất trong mỗi bước
- - Vì nó chia danh sách thành quá nhiều danh sách con
- - Vì nó sử dụng thêm một mảng phụ có kích thước bằng mảng gốc
Câu 16: Trong mã nguồn Python của thuật toán sắp xếp chọn, vòng lặp trong thường dùng để làm gì?
- - Đổi chỗ hai phần tử bất kỳ
- - Tìm chỉ số của phần tử nhỏ nhất trong phần còn lại của danh sách
- - In danh sách ra màn hình
- - Chia danh sách thành các mảng con
Câu 17: Đoạn mã Python 'while j >= 0 and A[j] > key: A[j + 1] = A[j]; j -= 1' thực hiện chức năng gì trong sắp xếp chèn?
- - Đổi chỗ hai phần tử bất kỳ
- - Tìm phần tử nhỏ nhất trong toàn bộ dãy
- - Dịch chuyển các phần tử lớn hơn 'key' sang phải để tạo khoảng trống chèn
- - Đếm số lượng phần tử trong danh sách
Câu 18: Tại sao thuật toán sắp xếp nổi bọt lại có tên gọi như vậy?
- - Vì nó làm cho dữ liệu bị biến mất như bọt xà phòng
- - Vì các phần tử nhỏ nhất luôn đứng yên tại chỗ
- - Vì nó hoạt động rất nhanh như tốc độ vỡ của bọt khí
- - Vì các phần tử lớn (hoặc nhỏ) dịch chuyển dần về phía cuối (hoặc đầu) dãy giống như các bọt khí nổi lên
Câu 19: Thuật toán sắp xếp nào thường có hiệu suất tốt nhất khi dãy đầu vào đã gần như được sắp xếp?
- - Sắp xếp chọn
- - Sắp xếp chèn
- - Sắp xếp nổi bọt cơ bản
- - Sắp xếp ngẫu nhiên
Câu 20: Trong thuật toán sắp xếp chèn, nếu phần tử đang xét đã lớn hơn tất cả các phần tử trong dãy con đã sắp xếp phía trước, ta cần làm gì?
- - Hoán đổi nó với phần tử đầu tiên của dãy
- - Xóa phần tử đó khỏi danh sách
- - Giữ nguyên vị trí của nó và chuyển sang phần tử tiếp theo
- - Chèn nó vào vị trí đầu tiên của dãy con
Câu 21: Cho dãy A = [10, 8, 15, 7]. Nếu sắp xếp giảm dần bằng thuật toán sắp xếp chọn, bước đầu tiên sẽ hoán đổi 10 với phần tử nào?
- - Số 8
- - Số 7
- - Số 15
- - Không hoán đổi vì 10 đã ở đúng vị trí
Câu 22: Trong Python, đoạn mã 'A[i], A[j] = A[j], A[i]' có tác dụng gì?
- - Gán giá trị của A[j] cho A[i] và xóa A[j]
- - Hoán đổi giá trị giữa hai phần tử A[i] và A[j]
- - So sánh xem A[i] có bằng A[j] hay không
- - Tạo một danh sách mới chứa A[i] và A[j]
Câu 23: Trong sắp xếp nổi bọt, nếu trong một lượt duyệt vòng lặp ngoài mà không có lần đổi chỗ nào xảy ra, ta có thể kết luận điều gì?
- - Dãy số đã được sắp xếp xong
- - Thuật toán bị lỗi
- - Phải đảo ngược dãy số
- - Dãy số chứa toàn số 0
Câu 24: Trong thuật toán sắp xếp chọn (Selection Sort), ý tưởng chính để sắp xếp dãy số theo thứ tự tăng dần là gì?
- - Chia dãy thành phần đã sắp xếp và phần chưa sắp xếp, sau đó chọn phần tử nhỏ nhất ở phần chưa sắp xếp đưa về cuối phần đã sắp xếp
- - So sánh hai phần tử liền kề và tráo đổi chúng nếu chúng đứng sai thứ tự cho đến khi toàn bộ dãy được sắp xếp
- - Chọn một phần tử chốt và phân chia dãy thành hai phần dựa trên giá trị của phần tử chốt đó
- - Lấy từng phần tử của dãy chưa sắp xếp và chèn vào vị trí đúng trong dãy đã sắp xếp
Câu 25: Phát biểu nào sau đây là SAI về thuật toán sắp xếp nổi bọt?
- - Nó có thể được cải tiến để dừng sớm nếu dãy đã sắp xếp xong
- - Nó luôn có độ phức tạp O(n log n)
- - Nó dựa trên các phép so sánh kề nhau
- - Sau lượt quét thứ k, k phần tử lớn nhất đã ở đúng vị trí cuối dãy