Trắc nghiệm Tin học 11 kết nối tri thứcTrắ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 Đăng vào 3 Tháng 5, 2026 bởi admin 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 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 Số câu25Quiz ID40960 Làm bài Câu 1 Trong mã nguồn Python của thuật toán sắp xếp chèn, vòng lặp nào được sử dụng để tìm vị trí chèn và dịch chuyển các phần tử? A Vòng lặp 'while' B Vòng lặp 'for' chạy từ cuối dãy lên đầu C Hàm 'sort' có sẵn của Python D Không cần vòng lặp nào Câu 2 Cho dãy A = [3, 2, 4, 1]. Sau lượt quét đầu tiên của thuật toán sắp xếp nổi bọt (đẩy phần tử lớn nhất về cuối), dãy A trở thành: A [1, 2, 3, 4] B [2, 3, 1, 4] C [2, 3, 4, 1] D [3, 2, 1, 4] Câu 3 Mục đích chính của các thuật toán sắp xếp trong lập trình là gì? A Hoán đổi vị trí của hai phần tử bất kỳ trong danh sách B Tổ chức lại các phần tử của danh sách theo một thứ tự xác định C Xóa các phần tử trùng lặp trong một danh sách cho trước D Tìm kiếm một phần tử có giá trị cụ thể trong danh sách Câu 4 Sắp xếp nổi bọt (Bubble Sort) so sánh các phần tử theo nguyên tắc nào? A So sánh phần tử đầu tiên với tất cả các phần tử còn lại B So sánh hai phần tử cách xa nhau C So sánh hai phần tử liền kề nhau D Chỉ so sánh các phần tử ở vị trí chẵn Câu 5 Khi thực hiện sắp xếp chèn cho dãy [2, 5, 8, 3, 1], tại bước xử lý phần tử giá trị 3, nó sẽ được chèn vào giữa hai phần tử nào? A Giữa 2 và 5 B Giữa 5 và 8 C Đứng trước số 2 D Đứng sau số 8 Câu 6 Trong thuật toán sắp xếp nổi bọt (Bubble Sort), hai phần tử kề nhau sẽ được hoán đổi khi nào nếu muốn sắp xếp tăng dần? A Khi phần tử đứng trước nhỏ hơn phần tử đứng sau B Khi hai phần tử có giá trị bằng nhau C Khi phần tử đứng trước lớn hơn phần tử đứng sau D Khi cả hai phần tử đều là số chẵn Câu 7 Sự khác biệt chính về số lần hoán đổi (swap) giữa sắp xếp nổi bọt và sắp xếp chọn là gì? A Sắp xếp nổi bọt luôn hoán đổi ít hơn sắp xếp chọn B Sắp xếp chọn chỉ thực hiện tối đa một lần hoán đổi cho mỗi lượt quét ngoài C Sắp xếp nổi bọt không bao giờ cần hoán đổi D Sắp xếp chọn hoán đổi các phần tử kề nhau liên tục Câu 8 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ì? A Hoán đổi nó với phần tử đầu tiên của dãy B Xóa phần tử đó khỏi danh sách C Giữ nguyên vị trí của nó và chuyển sang phần tử tiếp theo D Chèn nó vào vị trí đầu tiên của dãy con Câu 9 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? A Số 8 B Số 7 C Số 15 D Không hoán đổi vì 10 đã ở đúng vị trí Câu 10 Trong trường hợp tốt nhất (dãy đã được sắp xếp tăng dần), thuật toán nào sau đây có thể đạt hiệu quả cao nhất (thời gian chạy tuyến tính)? A Sắp xếp chọn (Selection Sort) B Sắp xếp chèn (Insertion Sort) C Sắp xếp nổi bọt cơ bản D Tất cả các thuật toán trên đều chạy như nhau Câu 11 Đ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? A Đổi chỗ hai phần tử bất kỳ B Tìm phần tử nhỏ nhất trong toàn bộ dãy C 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 D Đếm số lượng phần tử trong danh sách Câu 12 Đặc điểm nào sau đây là nhược điểm của các thuật toán sắp xếp đơn giản như Bubble Sort hay Selection Sort? A Khó cài đặt và đòi hỏi nhiều bộ nhớ phụ B Thời gian thực hiện tăng rất nhanh khi kích thước dữ liệu n lớn C Không thể sắp xếp được các dãy số âm D Chỉ sắp xếp được dữ liệu kiểu số Câu 13 Tại sao thuật toán sắp xếp nổi bọt lại có tên gọi là 'nổi bọt'? A Vì nó làm cho dữ liệu bị biến mất như bọt xà phòng B Vì các phần tử nhỏ/lớn dần dần di chuyển về đầu hoặc cuối dãy giống như các bọt khí nổi lên C Vì thuật toán này chỉ hoạt động với các số thực D Vì nó là thuật toán sắp xếp nhanh nhất hiện nay Câu 14 Câu lệnh nào xác định đúng phạm vi vòng lặp trong của thuật toán sắp xếp nổi bọt cho danh sách A có độ dài n (với i là chỉ số vòng lặp ngoài chạy từ 0 đến n-2)? A for j in range(n - 1) B for j in range(0, n - i - 1) C for j in range(i, n) D for j in range(n) Câu 15 Số lượng phép so sánh trong thuật toán sắp xếp chọn (Selection Sort) phụ thuộc vào yếu tố nào? A Thứ tự ban đầu của các phần tử trong dãy B Giá trị của các phần tử trong dãy C Số lượng phần tử n của dãy D Số lượng các phần tử bị trùng lặp Câu 16 Ý tưởng chính của thuật toán sắp xếp chọn (Selection Sort) là gì? A Chia danh sách thành hai phần bằng nhau và sắp xếp từng phần B Lấy một phần tử và chèn nó vào đúng vị trí trong dãy đã sắp xếp C Luôn chọn phần tử cuối cùng để so sánh với tất cả các phần tử khác D Liên tiếp chọn phần tử nhỏ nhất trong phần chưa được sắp xếp và đưa về vị trí đầu của phần đó Câu 17 Trong Python, đoạn mã 'A[i], A[j] = A[j], A[i]' có tác dụng gì? A Gán giá trị của A[j] cho A[i] và xóa A[j] B Hoán đổi giá trị giữa hai phần tử A[i] và A[j] C So sánh xem A[i] có bằng A[j] hay không D Tạo một danh sách mới chứa A[i] và A[j] Câu 18 Với danh sách có n phần tử, thuật toán sắp xếp nổi bọt cần thực hiện tối đa bao nhiêu lượt quét (vòng lặp ngoài)? A log(n) lượt B n lượt C n/2 lượt D n - 1 lượt Câu 19 Thuật toán sắp xếp nào sau đây thực hiện việc đẩy phần tử lớn nhất xuống cuối dãy sau mỗi lượt quét? A Sắp xếp trộn (Merge Sort) B Sắp xếp nhanh (Quick Sort) C Sắp xếp nổi bọt (Bubble Sort) D Sắp xếp chèn (Insertion Sort) Câu 20 Cho dãy số A = [5, 1, 4, 2]. Sau bước đầu tiên của thuật toán sắp xếp chọn (tìm phần tử nhỏ nhất và đổi chỗ với A[0]), dãy A sẽ trở thành: A [1, 5, 4, 2] B [1, 4, 2, 5] C [5, 4, 2, 1] D [1, 2, 4, 5] Câu 21 Trong thuật toán sắp xếp chèn (Insertion Sort), tại mỗi bước, một phần tử được lấy ra và làm gì? A So sánh với phần tử lớn nhất của dãy B Đổi chỗ với phần tử ở vị trí cuối cùng của dãy C Chèn vào vị trí thích hợp trong dãy con đã được sắp xếp phía trước nó D Loại bỏ khỏi dãy nếu nó lớn hơn phần tử đứng trước Câu 22 Trong thuật toán sắp xếp chèn, dãy con nào luôn được giữ ở trạng thái đã sắp xếp? A Dãy con ở giữa danh sách B Dãy con gồm các phần tử lẻ C Dãy con phía sau phần tử đang xét D Dãy con phía trước phần tử đang xét Câu 23 Thuật toán sắp xếp nổi bọt có thể kết thúc sớm nếu xảy ra điều kiện gì trong một lượt quét? A Khi có ít nhất một phép hoán đổi xảy ra B Khi không có phép hoán đổi nào được thực hiện trong suốt lượt quét đó C Khi phần tử đầu tiên bằng phần tử cuối cùng D Khi đã thực hiện được một nửa số lượt quét dự kiến Câu 24 Thuật toán sắp xếp chọn tìm chỉ số của phần tử nhỏ nhất trong đoạn từ i đến n-1 bằng cách nào? A Lấy luôn chỉ số i mà không cần so sánh B So sánh A[i] với phần tử cuối cùng A[n-1] C Duyệt qua các phần tử từ i+1 đến n-1 và cập nhật chỉ số nếu tìm thấy phần tử nhỏ hơn D Sử dụng hàm tìm kiếm nhị phân để tìm giá trị nhỏ nhất Câu 25 Nếu một danh sách đã được sắp xếp hoàn toàn, thuật toán sắp xếp chọn sẽ thực hiện bao nhiêu phép hoán đổi? A 0 phép hoán đổi B n phép hoán đổi C n - 1 phép hoán đổi (hoán đổi phần tử với chính nó) D n*(n-1)/2 phép hoán đổi Trắc nghiệm Tin học 11 Kết nối tri thức KHMT bài 20 Thực hành bài toán tìm kiếm Trắc nghiệm Tin học 11 Kết nối tri thức KHMT bài 22 Thực hành bài toán sắp xếp