12+ Đề Trắc Nghiệm Tin Học 11 (Kết Nối Tri Thức) Bài 22: Thực Hành Bài Toán Sắp Xếp

Đề 01

Đề 02

Đề 03

Đề 04

Đề 05

Đề 06

Đề 07

Đề 08

Đề 09

Đề 10

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 01

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 01 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong thuật toán sắp xếp chèn (Insertion Sort), khi xem xét một phần tử tại vị trí `i`, mục đích chính của việc so sánh phần tử này với các phần tử đứng trước nó trong dãy con đã sắp xếp là gì?

  • A. Để tìm phần tử nhỏ nhất trong dãy con chưa sắp xếp.
  • B. Để hoán đổi nó với phần tử lớn nhất trong toàn bộ danh sách.
  • C. Để xác định vị trí chính xác mà nó cần được chèn vào trong dãy con đã sắp xếp.
  • D. Để đếm số lần phần tử đó xuất hiện trong danh sách.

Câu 2: Xét danh sách số nguyên `[5, 2, 8, 1, 9]` và áp dụng thuật toán sắp xếp chèn để sắp xếp tăng dần. Sau khi duyệt và chèn xong phần tử `2` (phần tử thứ hai của danh sách ban đầu), danh sách sẽ có trạng thái như thế nào?

  • A. [2, 5, 1, 8, 9]
  • B. [2, 5, 8, 1, 9]
  • C. [1, 2, 5, 8, 9]
  • D. [5, 2, 8, 1, 9]

Câu 3: Trong thuật toán sắp xếp chọn (Selection Sort) để sắp xếp một danh sách gồm N phần tử theo thứ tự tăng dần, vòng lặp ngoài (duyệt qua các vị trí cần đặt phần tử đúng) sẽ lặp bao nhiêu lần?

  • A. N lần
  • B. N+1 lần
  • C. N-1 lần
  • D. N/2 lần

Câu 4: Xét danh sách `[7, 3, 9, 1, 5]` và áp dụng thuật toán sắp xếp chọn để sắp xếp tăng dần. Sau khi kết thúc vòng lặp ngoài đầu tiên (tìm và đặt phần tử nhỏ nhất vào vị trí đầu tiên), danh sách sẽ có trạng thái như thế nào?

  • A. [1, 3, 9, 7, 5]
  • B. [1, 3, 5, 7, 9]
  • C. [7, 3, 9, 1, 5]
  • D. [1, 7, 9, 3, 5]

Câu 5: Một giáo viên muốn sắp xếp danh sách điểm của học sinh theo thứ tự giảm dần. Danh sách này được lưu trữ trong một tệp văn bản, mỗi dòng một điểm.
Để đọc dữ liệu từ tệp "diem.txt" (có mã hóa UTF-8) và lưu vào một danh sách trong Python, dòng lệnh nào sau đây là phù hợp nhất?

  • A. `diem_ds = open("diem.txt", "w").readlines()`
  • B. `with open("diem.txt", "r", encoding="utf8") as f: diem_ds = [float(line.strip()) for line in f]`
  • C. `diem_ds = open("diem.txt", "r").read()`
  • D. `diem_ds = list(open("diem.txt", "r", encoding="utf8"))`

Câu 6: Tiếp tục ngữ cảnh từ Câu 5. Sau khi đọc điểm vào danh sách `diem_ds`, giáo viên quyết định sử dụng thuật toán sắp xếp chọn để sắp xếp điểm theo thứ tự giảm dần. Trong quá trình thực hiện thuật toán sắp xếp chọn giảm dần, ở mỗi bước lặp, thuật toán sẽ tìm phần tử có giá trị như thế nào trong phần còn lại của danh sách chưa được sắp xếp?

  • A. Lớn nhất
  • B. Nhỏ nhất
  • C. Trung bình
  • D. Đầu tiên

Câu 7: Khi nào thì thuật toán sắp xếp chèn (Insertion Sort) thể hiện hiệu quả tốt nhất so với thuật toán sắp xếp chọn (Selection Sort) hoặc nổi bọt (Bubble Sort)?

  • A. Khi danh sách chứa rất nhiều phần tử.
  • B. Khi cần đảm bảo số lần hoán đổi là tối thiểu.
  • C. Khi danh sách ban đầu hoàn toàn ngẫu nhiên và không có bất kỳ thứ tự nào.
  • D. Khi danh sách ban đầu gần như đã được sắp xếp.

Câu 8: Một lập trình viên viết hàm `sap_xep_noi_bot(ds)` để sắp xếp danh sách `ds` theo thứ tự tăng dần. Tuy nhiên, kết quả trả về lại là danh sách ban đầu không thay đổi. Khả năng cao nhất là lập trình viên đã quên thực hiện thao tác quan trọng nào bên trong các vòng lặp so sánh?

  • A. Khởi tạo biến đếm số lần so sánh.
  • B. Thực hiện hoán đổi (swap) các phần tử khi chúng sai vị trí.
  • C. Kiểm tra điều kiện dừng của vòng lặp ngoài.
  • D. In ra danh sách sau mỗi lần lặp.

Câu 9: Khi sắp xếp một danh sách chứa 1000 số nguyên ngẫu nhiên, thuật toán nào trong số Sắp xếp chèn, Sắp xếp chọn, Sắp xếp nổi bọt thường có hiệu suất (về mặt thời gian thực thi) kém nhất?

  • A. Sắp xếp chèn (Insertion Sort)
  • B. Sắp xếp chọn (Selection Sort)
  • C. Sắp xếp nổi bọt (Bubble Sort)
  • D. Cả ba đều có hiệu suất tương đương nhau cho dữ liệu ngẫu nhiên.

Câu 10: Xét đoạn mã Python sau thực hiện một phần của thuật toán sắp xếp:
```python
def process_list(arr):
n = len(arr)
for i in range(n):
# Tìm phần tử lớn nhất trong dãy con arr[i:n]
max_idx = i
for j in range(i+1, n):
if arr[j] > arr[max_idx]:
max_idx = j
# Hoán đổi phần tử lớn nhất tìm được với phần tử tại vị trí i
arr[i], arr[max_idx] = arr[max_idx], arr[i]
return arr
```
Đoạn mã này đang thực hiện thuật toán sắp xếp nào và theo thứ tự nào?

  • A. Sắp xếp chèn, tăng dần.
  • B. Sắp xếp chọn, giảm dần.
  • C. Sắp xếp nổi bọt, tăng dần.
  • D. Sắp xếp chèn, giảm dần.

Câu 11: Trong thuật toán sắp xếp chèn, khi chèn một phần tử vào dãy con đã sắp xếp, các phần tử lớn hơn nó trong dãy con đó được xử lý như thế nào?

  • A. Dịch chuyển sang phải một vị trí.
  • B. Dịch chuyển sang trái một vị trí.
  • C. Bị loại bỏ khỏi danh sách.
  • D. Hoán đổi vị trí với phần tử đang xét.

Câu 12: Giả sử bạn có một danh sách rất lớn (ví dụ: 1 triệu phần tử) và bạn biết chắc chắn rằng danh sách này đã được sắp xếp gần như hoàn hảo, chỉ có một vài phần tử sai vị trí. Thuật toán sắp xếp nào trong số Sắp xếp chèn, Sắp xếp chọn, Sắp xếp nổi bọt có khả năng hoạt động hiệu quả nhất trong tình huống này?

  • A. Sắp xếp chèn (Insertion Sort)
  • B. Sắp xếp chọn (Selection Sort)
  • C. Sắp xếp nổi bọt (Bubble Sort)
  • D. Cả ba đều kém hiệu quả với danh sách lớn.

Câu 13: Trong thuật toán sắp xếp chọn, sau mỗi lần hoàn thành vòng lặp trong (tìm phần tử min/max trong dãy con chưa sắp xếp), thao tác tiếp theo bắt buộc phải thực hiện là gì?

  • A. Dịch chuyển tất cả các phần tử còn lại sang phải.
  • B. Bắt đầu lại quá trình tìm kiếm từ đầu danh sách.
  • C. Hoán đổi phần tử tìm được với phần tử ở vị trí hiện tại của vòng lặp ngoài.
  • D. Kiểm tra xem danh sách đã được sắp xếp hoàn toàn chưa.

Câu 14: Khi sử dụng thuật toán sắp xếp nổi bọt để sắp xếp một danh sách theo thứ tự tăng dần, sau mỗi lần hoàn thành một lượt duyệt toàn bộ danh sách (bubble pass), phần tử nào sẽ chắc chắn nằm ở vị trí cuối cùng đúng của nó trong danh sách đã sắp xếp?

  • A. Phần tử nhỏ nhất.
  • B. Phần tử ở giữa danh sách.
  • C. Phần tử đầu tiên.
  • D. Phần tử lớn nhất trong phần chưa được sắp xếp của danh sách.

Câu 15: Trong thực tế, khi làm việc với các ngôn ngữ lập trình hiện đại như Python, người ta thường sử dụng các hàm sắp xếp có sẵn (ví dụ: `list.sort()` hoặc `sorted()`) thay vì tự cài đặt các thuật toán sắp xếp đơn giản như Sắp xếp chèn, Sắp xếp chọn, Sắp xếp nổi bọt. Lý do chính cho việc này là gì?

  • A. Các hàm có sẵn thường sử dụng các thuật toán sắp xếp hiệu quả hơn và được tối ưu hóa cao.
  • B. Việc tự cài đặt thuật toán sắp xếp là không thể trong các ngôn ngữ hiện đại.
  • C. Các hàm có sẵn chỉ hoạt động với dữ liệu số, còn các thuật toán đơn giản hoạt động với mọi loại dữ liệu.
  • D. Sử dụng hàm có sẵn giúp mã nguồn trở nên dài hơn và khó đọc hơn.

Câu 16: Bạn được giao nhiệm vụ viết chương trình quản lý danh sách các sản phẩm trong một cửa hàng. Mỗi sản phẩm có ID và số lượng tồn kho. Bạn cần sắp xếp danh sách này theo số lượng tồn kho tăng dần. Tệp dữ liệu đầu vào `tonkho.txt` có cấu trúc mỗi dòng là `ID,SoLuong`. Ví dụ: `A101,50
B205,12
C300,210`.
Để đọc dữ liệu từ tệp này vào một danh sách các cặp (ID, Số lượng) và chuyển số lượng thành kiểu số nguyên, đoạn mã Python nào sau đây là phù hợp?

  • A. ```python
    with open("tonkho.txt", "r") as f:
    data = [line.strip().split(",") for line in f]
    ```
  • B. ```python
    with open("tonkho.txt", "r") as f:
    data = [int(line.strip().split(",")[1]) for line in f]
    ```
  • C. ```python
    with open("tonkho.txt", "r") as f:
    data = [(line.strip().split(",")[0], int(line.strip().split(",")[1])) for line in f]
    ```
  • D. ```python
    with open("tonkho.txt", "r") as f:
    data = f.readlines()
    ```

Câu 17: Tiếp tục ngữ cảnh từ Câu 15. Sau khi đọc dữ liệu vào danh sách `data` dưới dạng các cặp `(ID, SoLuong)`, bạn muốn sắp xếp danh sách này dựa trên giá trị `SoLuong` (phần tử thứ hai trong mỗi cặp) theo thứ tự tăng dần bằng thuật toán sắp xếp chèn. Bạn cần viết một hàm sắp xếp chèn nhận vào danh sách `data`. Khi so sánh hai phần tử `item1` và `item2` trong danh sách (mỗi `item` là một cặp `(ID, SoLuong)`), điều kiện so sánh nào là đúng để sắp xếp tăng dần theo số lượng?

  • A. `item1[1] > item2[1]`
  • B. `item1[0] > item2[0]`
  • C. `item1[1] < item2[1]`
  • D. `item1 > item2`

Câu 18: Giả sử bạn đang thực hiện thuật toán sắp xếp chèn trên danh sách `[4, 1, 3, 2]` để sắp xếp tăng dần. Sau khi phần tử `1` được chèn vào đúng vị trí, bạn tiếp tục xét đến phần tử `3`. Quá trình chèn phần tử `3` vào dãy con đã sắp xếp `[1, 4]` diễn ra như thế nào?

  • A. So sánh 3 với 4, dịch 4 sang phải, chèn 3 vào vị trí của 4.
  • B. So sánh 3 với 4, dịch 4 sang phải, so sánh 3 với 1, dừng lại, chèn 3 vào giữa 1 và 4.
  • C. So sánh 3 với 1, dịch 1 sang phải, chèn 3 vào vị trí của 1.
  • D. Không cần làm gì vì 3 đã đúng vị trí.

Câu 19: Phát biểu nào sau đây mô tả đúng nhất về số lần hoán đổi (swap) giữa các phần tử trong thuật toán sắp xếp chọn (Selection Sort) so với thuật toán sắp xếp nổi bọt (Bubble Sort) trong trường hợp xấu nhất (ví dụ: danh sách sắp xếp ngược)?

  • A. Sắp xếp chọn thực hiện ít lần hoán đổi hơn đáng kể so với Sắp xếp nổi bọt.
  • B. Sắp xếp chọn và Sắp xếp nổi bọt thực hiện số lần hoán đổi tương đương nhau.
  • C. Sắp xếp chọn thực hiện nhiều lần hoán đổi hơn so với Sắp xếp nổi bọt.
  • D. Sắp xếp chọn không thực hiện hoán đổi, chỉ dịch chuyển phần tử.

Câu 20: Trong ngữ cảnh của Bài 22, việc thực hành đọc dữ liệu từ tệp (`.inp`) và ghi kết quả ra tệp (`.out`) có ý nghĩa gì trong quá trình học về thuật toán sắp xếp?

  • A. Chỉ là một bước không quan trọng để làm bài tập dài hơn.
  • B. Giúp thuật toán sắp xếp chạy nhanh hơn.
  • C. Thay thế hoàn toàn việc nhập dữ liệu từ bàn phím.
  • D. Là cách chuẩn bị và xử lý dữ liệu phổ biến trong thực tế, giúp kết nối lý thuyết thuật toán với ứng dụng.

Câu 21: Bạn có một danh sách các từ vựng và muốn sắp xếp chúng theo thứ tự bảng chữ cái. Thuật toán sắp xếp chèn có thể được áp dụng cho danh sách từ vựng này không?

  • A. Có, vì các chuỗi (từ vựng) có thể so sánh được theo thứ tự từ điển.
  • B. Không, thuật toán sắp xếp chèn chỉ hoạt động với các số nguyên.
  • C. Không, chỉ có thể áp dụng sắp xếp nổi bọt cho chuỗi.
  • D. Chỉ khi tất cả các từ vựng có cùng độ dài.

Câu 22: Khi cài đặt thuật toán sắp xếp chèn trong Python, việc dịch chuyển các phần tử lớn hơn sang phải để tạo khoảng trống có thể được thực hiện hiệu quả bằng cách nào?

  • A. Sử dụng hàm `list.remove()` để xóa phần tử và `list.insert()` để chèn vào vị trí mới.
  • B. Sử dụng một vòng lặp lùi để dịch chuyển từng phần tử lớn hơn sang phải một vị trí.
  • C. Hoán đổi phần tử đang xét với tất cả các phần tử lớn hơn nó.
  • D. Tạo một danh sách mới và sao chép các phần tử theo thứ tự.

Câu 23: Trong thuật toán sắp xếp chọn để sắp xếp giảm dần, biến `max_idx` (chỉ số của phần tử lớn nhất) được cập nhật khi nào trong vòng lặp trong?

  • A. Khi tìm thấy phần tử nhỏ nhất.
  • B. Mỗi lần duyệt qua một phần tử mới trong vòng lặp trong.
  • C. Khi phần tử đang xét (`arr[j]`) lớn hơn phần tử tại chỉ số `max_idx` hiện tại (`arr[max_idx]`).
  • D. Khi phần tử đang xét (`arr[j]`) nhỏ hơn phần tử tại chỉ số `max_idx` hiện tại (`arr[max_idx]`).

Câu 24: Một ưu điểm của thuật toán sắp xếp chọn (Selection Sort) so với thuật toán sắp xếp nổi bọt (Bubble Sort) là gì?

  • A. Hiệu quả hơn đáng kể về thời gian thực thi trong trường hợp xấu nhất.
  • B. Số lần hoán đổi phần tử luôn là tối thiểu (N-1 lần).
  • C. Dễ cài đặt hơn so với Sắp xếp nổi bọt.
  • D. Có thể dừng sớm nếu danh sách đã được sắp xếp.

Câu 25: Bạn đang sử dụng thuật toán sắp xếp nổi bọt để sắp xếp danh sách `[6, 4, 2, 5, 1, 3]` theo thứ tự tăng dần. Sau khi hoàn thành lượt duyệt (pass) đầu tiên, danh sách sẽ có trạng thái như thế nào?

  • A. [1, 2, 3, 4, 5, 6]
  • B. [4, 6, 2, 5, 1, 3]
  • C. [4, 2, 6, 5, 1, 3]
  • D. [4, 2, 5, 1, 3, 6]

Câu 26: Việc lựa chọn thuật toán sắp xếp (chèn, chọn, nổi bọt) cho một bài toán cụ thể nên dựa vào những yếu tố nào?

  • A. Chỉ dựa vào độ dài của mã nguồn cài đặt thuật toán.
  • B. Chỉ dựa vào tên gọi của thuật toán có "hay" hay không.
  • C. Kích thước dữ liệu, mức độ sắp xếp ban đầu của dữ liệu, và yêu cầu về hiệu suất (thời gian, số lần hoán đổi).
  • D. Thuật toán nào được giới thiệu đầu tiên trong sách giáo khoa.

Câu 27: Trong thuật toán sắp xếp chèn tăng dần, khi chèn phần tử `key` vào dãy con đã sắp xếp, vòng lặp tìm vị trí chèn sẽ dừng lại khi gặp một phần tử như thế nào?

  • A. Nhỏ hơn hoặc bằng `key` (hoặc khi đi hết về đầu danh sách).
  • B. Lớn hơn `key`.
  • C. Bằng với `key`.
  • D. Ở vị trí cuối cùng của dãy con đã sắp xếp.

Câu 28: Điểm khác biệt cơ bản trong cách tiếp cận sắp xếp của thuật toán Sắp xếp chọn (Selection Sort) so với Sắp xếp chèn (Insertion Sort) là gì?

  • A. Sắp xếp chọn dùng hoán đổi, còn Sắp xếp chèn dùng dịch chuyển.
  • B. Sắp xếp chọn tập trung vào việc tìm phần tử min/max và đặt vào đúng vị trí, còn Sắp xếp chèn tập trung vào việc chèn phần tử hiện tại vào dãy đã sắp xếp.
  • C. Sắp xếp chọn chỉ hoạt động với số, còn Sắp xếp chèn hoạt động với mọi loại dữ liệu.
  • D. Sắp xếp chọn hiệu quả với danh sách lớn, còn Sắp xếp chèn hiệu quả với danh sách nhỏ.

Câu 29: Xét danh sách `[10, 20, 30, 40, 50]`. Nếu áp dụng thuật toán sắp xếp nổi bọt để sắp xếp tăng dần, điều gì sẽ xảy ra trong lượt duyệt (pass) đầu tiên?

  • A. Sẽ có nhiều thao tác hoán đổi để đưa các phần tử về đúng vị trí.
  • B. Phần tử 50 sẽ được đưa về vị trí đầu tiên.
  • C. Danh sách sẽ bị đảo ngược thứ tự.
  • D. Sẽ không có bất kỳ thao tác hoán đổi nào xảy ra.

Câu 30: Trong bài thực hành, việc in danh sách đã sắp xếp ra màn hình hoặc ghi ra tệp output giúp người học làm gì?

  • A. Kiểm tra tính đúng đắn của thuật toán và hiển thị kết quả cuối cùng.
  • B. Làm cho thuật toán chạy nhanh hơn.
  • C. Thay đổi thứ tự sắp xếp của danh sách.
  • D. Tăng độ phức tạp của chương trình.

Câu 31: Khi nào thì bạn có thể thêm một cờ (flag) vào thuật toán sắp xếp nổi bọt để tối ưu hóa, giúp dừng thuật toán sớm hơn?

  • A. Khi danh sách có kích thước rất nhỏ.
  • B. Khi trong một lượt duyệt (pass) không có bất kỳ cặp phần tử nào cần hoán đổi.
  • C. Khi số lần hoán đổi vượt quá một ngưỡng nhất định.
  • D. Sau khi hoàn thành vòng lặp ngoài đầu tiên.

Câu 32: Bạn cần sắp xếp một danh sách các đối tượng phức tạp (ví dụ: các đối tượng SinhVien với nhiều thuộc tính như tên, mã số, điểm trung bình). Nếu sử dụng các thuật toán sắp xếp đơn giản đã học (chèn, chọn, nổi bọt), bạn sẽ cần điều chỉnh phần nào trong mã nguồn cài đặt thuật toán?

  • A. Cấu trúc vòng lặp ngoài.
  • B. Cấu trúc vòng lặp trong.
  • C. Điều kiện so sánh giữa hai phần tử.
  • D. Số lượng phần tử cần duyệt trong mỗi vòng lặp.

Câu 33: Trong thuật toán sắp xếp chèn, tại sao vòng lặp dùng để tìm vị trí chèn và dịch chuyển các phần tử lại bắt đầu từ cuối dãy con đã sắp xếp (vị trí `i-1`) và đi lùi về đầu?

  • A. Để dễ dàng dịch chuyển các phần tử lớn hơn sang phải, tạo khoảng trống cho phần tử đang xét mà không làm mất dữ liệu.
  • B. Để tìm phần tử nhỏ nhất trong dãy con đã sắp xếp.
  • C. Để đếm số lượng phần tử trong dãy con đã sắp xếp.
  • D. Để đảm bảo thuật toán luôn dừng lại.

Câu 34: Khi nào thì thuật toán sắp xếp chọn (Selection Sort) có lợi thế hơn so với thuật toán sắp xếp chèn (Insertion Sort)?

  • A. Khi danh sách gần như đã được sắp xếp.
  • B. Khi chi phí cho thao tác hoán đổi (swap) giữa hai phần tử là rất cao.
  • C. Khi cần sắp xếp danh sách theo thứ tự giảm dần.
  • D. Khi muốn thuật toán dừng sớm nếu danh sách đã được sắp xếp.

Câu 35: Bạn có danh sách điểm trung bình của 5 học sinh: `[7.5, 8.0, 6.5, 9.0, 7.0]`. Sử dụng thuật toán sắp xếp chọn để sắp xếp giảm dần. Sau khi hoàn thành vòng lặp ngoài thứ hai (tìm và đặt phần tử lớn thứ hai vào vị trí thứ hai), danh sách sẽ có trạng thái như thế nào?

  • A. [9.0, 8.0, 7.5, 7.0, 6.5]
  • B. [9.0, 8.0, 6.5, 7.5, 7.0]
  • C. [9.0, 7.5, 8.0, 6.5, 7.0]
  • D. [6.5, 7.0, 7.5, 8.0, 9.0]

Câu 36: Mục đích của việc sử dụng hàm `strip()` khi đọc từng dòng từ tệp văn bản là gì?

  • A. Chuyển chuỗi thành số nguyên.
  • B. Tách chuỗi thành các phần tử dựa trên dấu phẩy.
  • C. Xóa bỏ các ký tự trắng (bao gồm ký tự xuống dòng) ở đầu và cuối chuỗi.
  • D. Kiểm tra xem chuỗi có rỗng hay không.

Câu 37: Trong thuật toán sắp xếp nổi bọt (Bubble Sort) sắp xếp tăng dần, sau mỗi lượt duyệt (pass), phần tử lớn nhất trong dãy con chưa sắp xếp sẽ được đưa về vị trí cuối cùng của dãy con đó. Điều này có ý nghĩa gì đối với phạm vi của vòng lặp trong ở các lượt duyệt tiếp theo?

  • A. Phạm vi của vòng lặp trong cần giảm đi 1 ở mỗi lượt duyệt ngoài.
  • B. Phạm vi của vòng lặp trong cần tăng lên 1 ở mỗi lượt duyệt ngoài.
  • C. Phạm vi của vòng lặp trong không thay đổi.
  • D. Vòng lặp trong chỉ cần duyệt 2 phần tử đầu tiên.

Câu 38: Bạn có một danh sách các bản ghi dữ liệu và cần sắp xếp chúng. Thuật toán Sắp xếp nổi bọt được biết đến là thuật toán "ổn định" (stable). Tính "ổn định" của một thuật toán sắp xếp có ý nghĩa gì?

  • A. Thuật toán luôn chạy với tốc độ như nhau bất kể dữ liệu đầu vào.
  • B. Thuật toán sử dụng ít bộ nhớ hơn các thuật toán khác.
  • C. Thuật toán giữ nguyên thứ tự tương đối của các phần tử có giá trị bằng nhau.
  • D. Thuật toán có thể dừng sớm nếu danh sách đã được sắp xếp một phần.

Câu 39: Hãy phân tích đoạn mã Python sau:
```python
def mystery_sort(arr):
n = len(arr)
for i in range(1, n):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] < key: arr[j + 1] = arr[j] j -= 1 arr[j + 1] = key return arr ``` Đoạn mã này đang thực hiện thuật toán sắp xếp nào và theo thứ tự nào?

  • A. Sắp xếp chọn, tăng dần.
  • B. Sắp xếp nổi bọt, giảm dần.
  • C. Sắp xếp chọn, giảm dần.
  • D. Sắp xếp chèn, giảm dần.

Câu 40: Trong thuật toán sắp xếp chèn, số lần dịch chuyển phần tử trong trường hợp tốt nhất (danh sách đã sắp xếp) là bao nhiêu?

  • A. 0
  • B. O(N)
  • C. O(N^2)
  • D. N-1

Câu 41: Thuật toán sắp xếp nào trong số Sắp xếp chèn, Sắp xếp chọn, Sắp xếp nổi bọt có thể được coi là đơn giản nhất để hiểu và cài đặt ban đầu?

  • A. Sắp xếp chèn (Insertion Sort)
  • B. Sắp xếp chọn (Selection Sort)
  • C. Sắp xếp nổi bọt (Bubble Sort)
  • D. Độ phức tạp ngang nhau.

1 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Câu 1: Trong thuật toán sắp xếp chèn (Insertion Sort), khi xem xét một phần tử tại vị trí `i`, mục đích chính của việc so sánh phần tử này với các phần tử đứng trước nó trong dãy con đã sắp xếp là gì?

2 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Câu 2: Xét danh sách số nguyên `[5, 2, 8, 1, 9]` và áp dụng thuật toán sắp xếp chèn để sắp xếp tăng dần. Sau khi duyệt và chèn xong phần tử `2` (phần tử thứ hai của danh sách ban đầu), danh sách sẽ có trạng thái như thế nào?

3 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Câu 3: Trong thuật toán sắp xếp chọn (Selection Sort) để sắp xếp một danh sách gồm N phần tử theo thứ tự tăng dần, vòng lặp ngoài (duyệt qua các vị trí cần đặt phần tử đúng) sẽ lặp bao nhiêu lần?

4 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Câu 4: Xét danh sách `[7, 3, 9, 1, 5]` và áp dụng thuật toán sắp xếp chọn để sắp xếp tăng dần. Sau khi kết thúc vòng lặp ngoài đầu tiên (tìm và đặt phần tử nhỏ nhất vào vị trí đầu tiên), danh sách sẽ có trạng thái như thế nào?

5 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Tiếp tục ngữ cảnh từ Câu 5. Sau khi đọc điểm vào danh sách `diem_ds`, giáo viên quyết định sử dụng thuật toán sắp xếp chọn để sắp xếp điểm theo thứ tự giảm dần. Trong quá trình thực hiện thuật toán sắp xếp chọn giảm dần, ở mỗi bước lặp, thuật toán sẽ tìm phần tử có giá trị như thế nào trong phần còn lại của danh sách chưa được sắp xếp?

6 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Khi nào thì thuật toán sắp xếp chèn (Insertion Sort) thể hiện hiệu quả tốt nhất so với thuật toán sắp xếp chọn (Selection Sort) hoặc nổi bọt (Bubble Sort)?

7 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Một lập trình viên viết hàm `sap_xep_noi_bot(ds)` để sắp xếp danh sách `ds` theo thứ tự tăng dần. Tuy nhiên, kết quả trả về lại là danh sách ban đầu không thay đổi. Khả năng cao nhất là lập trình viên đã quên thực hiện thao tác quan trọng nào bên trong các vòng lặp so sánh?

8 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Khi sắp xếp một danh sách chứa 1000 số nguyên ngẫu nhiên, thuật toán nào trong số Sắp xếp chèn, Sắp xếp chọn, Sắp xếp nổi bọt thường có hiệu suất (về mặt thời gian thực thi) kém nhất?

9 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Trong thuật toán sắp xếp chèn, khi chèn một phần tử vào dãy con đã sắp xếp, các phần tử lớn hơn nó trong dãy con đó được xử lý như thế nào?

10 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Giả sử bạn có một danh sách rất lớn (ví dụ: 1 triệu phần tử) và bạn biết chắc chắn rằng danh sách này đã được sắp xếp gần như hoàn hảo, chỉ có một vài phần tử sai vị trí. Thuật toán sắp xếp nào trong số Sắp xếp chèn, Sắp xếp chọn, Sắp xếp nổi bọt có khả năng hoạt động hiệu quả nhất trong tình huống này?

11 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Trong thuật toán sắp xếp chọn, sau mỗi lần hoàn thành vòng lặp trong (tìm phần tử min/max trong dãy con chưa sắp xếp), thao tác tiếp theo bắt buộc phải thực hiện là gì?

12 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Khi sử dụng thuật toán sắp xếp nổi bọt để sắp xếp một danh sách theo thứ tự tăng dần, sau mỗi lần hoàn thành một lượt duyệt toàn bộ danh sách (bubble pass), phần tử nào sẽ chắc chắn nằm ở vị trí cuối cùng đúng của nó trong danh sách đã sắp xếp?

13 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Trong thực tế, khi làm việc với các ngôn ngữ lập trình hiện đại như Python, người ta thường sử dụng các hàm sắp xếp có sẵn (ví dụ: `list.sort()` hoặc `sorted()`) thay vì tự cài đặt các thuật toán sắp xếp đơn giản như Sắp xếp chèn, Sắp xếp chọn, Sắp xếp nổi bọt. Lý do chính cho việc này là gì?

14 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Tiếp tục ngữ cảnh từ Câu 15. Sau khi đọc dữ liệu vào danh sách `data` dưới dạng các cặp `(ID, SoLuong)`, bạn muốn sắp xếp danh sách này dựa trên giá trị `SoLuong` (phần tử thứ hai trong mỗi cặp) theo thứ tự tăng dần bằng thuật toán sắp xếp chèn. Bạn cần viết một hàm sắp xếp chèn nhận vào danh sách `data`. Khi so sánh hai phần tử `item1` và `item2` trong danh sách (mỗi `item` là một cặp `(ID, SoLuong)`), điều kiện so sánh nào là đúng để sắp xếp tăng dần theo số lượng?

15 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Giả sử bạn đang thực hiện thuật toán sắp xếp chèn trên danh sách `[4, 1, 3, 2]` để sắp xếp tăng dần. Sau khi phần tử `1` được chèn vào đúng vị trí, bạn tiếp tục xét đến phần tử `3`. Quá trình chèn phần tử `3` vào dãy con đã sắp xếp `[1, 4]` diễn ra như thế nào?

16 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Phát biểu nào sau đây mô tả đúng nhất về số lần hoán đổi (swap) giữa các phần tử trong thuật toán sắp xếp chọn (Selection Sort) so với thuật toán sắp xếp nổi bọt (Bubble Sort) trong trường hợp xấu nhất (ví dụ: danh sách sắp xếp ngược)?

17 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Trong ngữ cảnh của Bài 22, việc thực hành đọc dữ liệu từ tệp (`.inp`) và ghi kết quả ra tệp (`.out`) có ý nghĩa gì trong quá trình học về thuật toán sắp xếp?

18 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Bạn có một danh sách các từ vựng và muốn sắp xếp chúng theo thứ tự bảng chữ cái. Thuật toán sắp xếp chèn có thể được áp dụng cho danh sách từ vựng này không?

19 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Khi cài đặt thuật toán sắp xếp chèn trong Python, việc dịch chuyển các phần tử lớn hơn sang phải để tạo khoảng trống có thể được thực hiện hiệu quả bằng cách nào?

20 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Trong thuật toán sắp xếp chọn để sắp xếp giảm dần, biến `max_idx` (chỉ số của phần tử lớn nhất) được cập nhật khi nào trong vòng lặp trong?

21 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Một ưu điểm của thuật toán sắp xếp chọn (Selection Sort) so với thuật toán sắp xếp nổi bọt (Bubble Sort) là gì?

22 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Bạn đang sử dụng thuật toán sắp xếp nổi bọt để sắp xếp danh sách `[6, 4, 2, 5, 1, 3]` theo thứ tự tăng dần. Sau khi hoàn thành lượt duyệt (pass) đầu tiên, danh sách sẽ có trạng thái như thế nào?

23 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Việc lựa chọn thuật toán sắp xếp (chèn, chọn, nổi bọt) cho một bài toán cụ thể nên dựa vào những yếu tố nào?

24 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Trong thuật toán sắp xếp chèn tăng dần, khi chèn phần tử `key` vào dãy con đã sắp xếp, vòng lặp tìm vị trí chèn sẽ dừng lại khi gặp một phần tử như thế nào?

25 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Điểm khác biệt cơ bản trong cách tiếp cận sắp xếp của thuật toán Sắp xếp chọn (Selection Sort) so với Sắp xếp chèn (Insertion Sort) là gì?

26 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Xét danh sách `[10, 20, 30, 40, 50]`. Nếu áp dụng thuật toán sắp xếp nổi bọt để sắp xếp tăng dần, điều gì sẽ xảy ra trong lượt duyệt (pass) đầu tiên?

27 / 27

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 01

Trong bài thực hành, việc in danh sách đã sắp xếp ra màn hình hoặc ghi ra tệp output giúp người học làm gì?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 02

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 02 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong thuật toán sắp xếp chèn (Insertion Sort) khi sắp xếp một danh sách theo thứ tự tăng dần, phần tử "khóa" (key) ở mỗi bước lặp được so sánh và chèn vào đâu trong phần danh sách đã được sắp xếp?

  • A. Luôn ở cuối phần danh sách đã sắp xếp.
  • B. Vào vị trí phù hợp trong phần danh sách đã sắp xếp để duy trì thứ tự.
  • C. Luôn ở đầu phần danh sách đã sắp xếp.
  • D. Ngẫu nhiên trong phần danh sách đã sắp xếp.

Câu 2: Giả sử bạn có danh sách [8, 4, 6, 2] và đang áp dụng thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp tăng dần. Sau lượt duyệt (pass) đầu tiên hoàn thành, danh sách sẽ có trạng thái như thế nào?

  • A. [2, 4, 6, 8]
  • B. [4, 8, 6, 2]
  • C. [4, 6, 2, 8]
  • D. [8, 4, 6, 2]

Câu 3: Thuật toán sắp xếp chọn (Selection Sort) khi sắp xếp tăng dần hoạt động bằng cách lặp lại việc tìm kiếm phần tử nào trong phần danh sách chưa được sắp xếp?

  • A. Phần tử nhỏ nhất.
  • B. Phần tử lớn nhất.
  • C. Phần tử đầu tiên.
  • D. Phần tử cuối cùng.

Câu 4: Khi thực hiện sắp xếp chèn (Insertion Sort) một danh sách gồm N phần tử đã được sắp xếp gần hết (chỉ một vài phần tử sai vị trí), phát biểu nào sau đây là đúng nhất về hiệu suất của thuật toán?

  • A. Thuật toán sẽ có hiệu suất rất kém, tệ hơn nhiều so với trường hợp ngẫu nhiên.
  • B. Thuật toán sẽ hoạt động rất hiệu quả, gần với trường hợp tốt nhất.
  • C. Hiệu suất không thay đổi đáng kể so với trường hợp danh sách ngẫu nhiên.
  • D. Thuật toán sẽ dừng ngay lập tức vì danh sách gần như đã sắp xếp.

Câu 5: Giả sử bạn có danh sách [5, 2, 8, 1, 9] và đang sắp xếp tăng dần bằng thuật toán sắp xếp chọn (Selection Sort). Sau khi phần tử đầu tiên được đặt đúng vị trí (hoàn thành bước đầu tiên), danh sách sẽ có trạng thái như thế nào?

  • A. [1, 2, 8, 9, 5]
  • B. [2, 5, 8, 1, 9]
  • C. [5, 2, 8, 1, 9]
  • D. [1, 2, 8, 5, 9]

Câu 6: Trong thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp tăng dần, mục đích chính của việc lặp đi lặp lại so sánh các cặp phần tử liền kề và hoán đổi nếu sai thứ tự là gì?

  • A. Đẩy các phần tử lớn hơn dần về cuối danh sách.
  • B. Tìm vị trí chính xác cho từng phần tử trong dãy đã sắp xếp.
  • C. Tìm phần tử nhỏ nhất và đưa về đầu danh sách.
  • D. Chia danh sách thành hai phần đã sắp xếp và chưa sắp xếp.

Câu 7: Khi nào thì thuật toán sắp xếp nổi bọt (Bubble Sort) được coi là không hiệu quả so với các thuật toán khác như sắp xếp chọn hay chèn?

  • A. Khi danh sách đã được sắp xếp hoàn toàn.
  • B. Khi danh sách có kích thước rất nhỏ (dưới 10 phần tử).
  • C. Khi số lượng phần tử trong danh sách rất lớn.
  • D. Khi các phần tử trong danh sách có giá trị trùng lặp.

Câu 8: Để sắp xếp một danh sách các sản phẩm theo giá từ thấp đến cao bằng thuật toán sắp xếp chèn (Insertion Sort), khi xét một sản phẩm "X", bạn cần so sánh giá của "X" với giá của các sản phẩm nào trong phần danh sách đã được sắp xếp?

  • A. Tất cả các sản phẩm trong danh sách chưa sắp xếp.
  • B. Chỉ sản phẩm liền kề bên phải trong phần đã sắp xếp.
  • C. Chỉ sản phẩm đầu tiên của danh sách đã sắp xếp.
  • D. Các sản phẩm bên trái nó trong phần danh sách đã sắp xếp.

Câu 9: Điểm khác biệt cốt lõi trong cách hoạt động giữa thuật toán sắp xếp chọn (Selection Sort) và sắp xếp nổi bọt (Bubble Sort) là gì?

  • A. Sắp xếp chọn tìm phần tử min/max và đổi chỗ, trong khi sắp xếp nổi bọt so sánh và đổi chỗ các cặp liền kề.
  • B. Sắp xếp chọn hiệu quả trên dữ liệu đã sắp xếp, còn sắp xếp nổi bọt thì không.
  • C. Sắp xếp chọn sử dụng thêm bộ nhớ để lưu phần tử min/max, còn sắp xếp nổi bọt thì không.
  • D. Sắp xếp chọn chỉ hoạt động trên số nguyên, còn sắp xếp nổi bọt hoạt động trên mọi kiểu dữ liệu.

Câu 10: Để sắp xếp danh sách điểm trung bình môn Tin học của học sinh theo thứ tự giảm dần bằng thuật toán sắp xếp chọn (Selection Sort), ở mỗi bước lặp, bạn cần tìm phần tử nào trong phần danh sách chưa được sắp xếp?

  • A. Phần tử nhỏ nhất.
  • B. Phần tử lớn nhất.
  • C. Phần tử có giá trị gần nhất với giá trị trung bình.
  • D. Phần tử ngẫu nhiên.

Câu 11: Giả sử bạn đang viết chương trình Python để đọc danh sách số nguyên từ một tệp văn bản, mỗi số trên một dòng, sau đó sắp xếp chúng. Dòng lệnh nào sau đây là cách phổ biến để đọc từng dòng từ tệp và chuyển nó thành số nguyên để thêm vào danh sách `data_list`?

  • A. `data_list = file.read()`
  • B. `for num in file: data_list.add(float(num))`
  • C. `with open("data.txt", "r") as file: for line in file: data_list.append(int(line.strip()))`
  • D. `data_list = [line for line in file]`

Câu 12: Trong thuật toán sắp xếp chèn (Insertion Sort) sắp xếp tăng dần, khi bạn đã tìm được vị trí đúng để chèn phần tử "khóa", các phần tử lớn hơn "khóa" trong phần đã sắp xếp cần được thực hiện hành động gì để tạo chỗ trống?

  • A. Dịch chuyển sang phải một vị trí.
  • B. Xóa khỏi danh sách.
  • C. Dịch chuyển sang trái một vị trí.
  • D. Hoán đổi với phần tử "khóa".

Câu 13: Giả sử bạn có danh sách [7, 3, 5, 1] và đang sắp xếp tăng dần bằng thuật toán sắp xếp chèn (Insertion Sort). Sau khi xử lý xong phần tử thứ hai (giá trị 3), danh sách sẽ có trạng thái như thế nào?

  • A. [3, 5, 7, 1]
  • B. [3, 7, 5, 1]
  • C. [7, 3, 5, 1]
  • D. [1, 3, 5, 7]

Câu 14: Bạn cần sắp xếp một danh sách các giao dịch tài chính theo ngày giờ phát sinh. Dữ liệu thường xuyên được thêm vào danh sách này và bạn muốn duy trì danh sách luôn được sắp xếp. Thuật toán sắp xếp đơn giản nào sau đây có thể phù hợp nhất cho tình huống này nếu danh sách không quá lớn?

  • A. Sắp xếp chèn (Insertion Sort).
  • B. Sắp xếp nổi bọt (Bubble Sort).
  • C. Sắp xếp chọn (Selection Sort).
  • D. Cả ba thuật toán đều không phù hợp.

Câu 15: Trong thuật toán sắp xếp chọn (Selection Sort) khi sắp xếp một danh sách gồm N phần tử, số lần hoán đổi (swap) tối đa có thể xảy ra là bao nhiêu?

  • A. N * (N-1) / 2
  • B. N
  • C. N - 1
  • D. N^2

Câu 16: Giả sử bạn có danh sách [9, 1, 7, 3] và đang áp dụng thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp giảm dần. Sau lượt duyệt (pass) đầu tiên hoàn thành, danh sách sẽ có trạng thái như thế nào?

  • A. [9, 7, 3, 1]
  • B. [1, 3, 7, 9]
  • C. [9, 1, 7, 3]
  • D. [7, 9, 3, 1]

Câu 17: Đoạn mã giả sau mô tả một phần của thuật toán sắp xếp đơn giản: ( text{Cho } i text{ từ } 1 text{ đến } N-1 ): ( text{khóa = danh_sach}[i] ); ( j = i - 1 ); ( text{Trong khi } j ge 0 text{ và danh_sach}[j] > text{khóa} ): ( text{danh_sach}[j+1] = text{danh_sach}[j] ); ( j = j - 1 ); ( text{danh_sach}[j+1] = text{khóa} ). Đây là thuật toán nào?

  • A. Sắp xếp nổi bọt (Bubble Sort).
  • B. Sắp xếp chọn (Selection Sort).
  • C. Sắp xếp chèn (Insertion Sort).
  • D. Sắp xếp nhanh (Quick Sort).

Câu 18: Khi sử dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp một danh sách, điều gì được đảm bảo đúng sau khi hoàn thành bước lặp thứ k (tính từ 0)?

  • A. Toàn bộ danh sách đã được sắp xếp hoàn chỉnh.
  • B. Phần tử ở vị trí k là phần tử lớn nhất trong toàn bộ danh sách.
  • C. Các phần tử từ vị trí 0 đến k đã được sắp xếp tương đối nhưng chưa chắc chắn đúng vị trí cuối cùng.
  • D. Phần tử nhỏ nhất (hoặc lớn nhất) trong toàn bộ danh sách chưa sắp xếp đã được đặt vào vị trí đúng của nó trong danh sách cuối cùng.

Câu 19: Trong thuật toán sắp xếp chèn (Insertion Sort), biến `j` thường được sử dụng để làm gì trong vòng lặp bên trong?

  • A. Lưu trữ giá trị của phần tử "khóa".
  • B. Duyệt qua phần danh sách đã được sắp xếp để tìm vị trí chèn.
  • C. Đếm số lần hoán đổi đã thực hiện.
  • D. Lưu chỉ số của phần tử nhỏ nhất trong danh sách.

Câu 20: Bạn có một danh sách rất lớn các số nguyên cần sắp xếp. Thuật toán nào trong số các thuật toán đơn giản (nổi bọt, chọn, chèn) có thể là lựa chọn kém hiệu quả nhất về mặt thời gian thực hiện trên dữ liệu ngẫu nhiên?

  • A. Sắp xếp nổi bọt (Bubble Sort).
  • B. Sắp xếp chọn (Selection Sort).
  • C. Sắp xếp chèn (Insertion Sort).
  • D. Cả ba đều có hiệu suất tương đương nhau trên dữ liệu lớn.

Câu 21: Để sắp xếp danh sách điểm theo thứ tự giảm dần bằng thuật toán sắp xếp nổi bọt (Bubble Sort), bạn cần điều chỉnh điều kiện so sánh giữa hai phần tử liền kề như thế nào so với sắp xếp tăng dần?

  • A. So sánh nếu phần tử bên trái lớn hơn phần tử bên phải thì hoán đổi.
  • B. So sánh nếu phần tử bên trái bằng phần tử bên phải thì hoán đổi.
  • C. So sánh nếu phần tử bên trái nhỏ hơn phần tử bên phải thì hoán đổi.
  • D. Không cần điều chỉnh, thuật toán nổi bọt luôn sắp xếp giảm dần.

Câu 22: Xét danh sách [4, 1, 3, 2]. Áp dụng thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần. Trạng thái của danh sách sau khi xử lý xong phần tử thứ ba (giá trị 3) là gì?

  • A. [1, 2, 3, 4]
  • B. [4, 1, 3, 2]
  • C. [1, 4, 3, 2]
  • D. [1, 3, 4, 2]

Câu 23: Mục đích của việc sử dụng biến tạm thời (ví dụ: `temp`) khi hoán đổi giá trị của hai biến trong lập trình là gì?

  • A. Lưu giữ giá trị của một biến trước khi nó bị ghi đè, giúp hoàn tất quá trình hoán đổi.
  • B. Tăng tốc độ thực hiện phép hoán đổi.
  • C. Giảm số lượng biến cần thiết trong chương trình.
  • D. Kiểm tra xem hai biến có bằng nhau hay không.

Câu 24: Khi nào thì thuật toán sắp xếp chèn (Insertion Sort) có hiệu suất tốt nhất (trường hợp tốt nhất)?

  • A. Khi danh sách được sắp xếp theo thứ tự ngược lại.
  • B. Khi danh sách đã được sắp xếp hoàn toàn theo thứ tự mong muốn.
  • C. Khi tất cả các phần tử trong danh sách có giá trị trùng lặp.
  • D. Khi danh sách có kích thước rất lớn.

Câu 25: Trong thuật toán sắp xếp chọn (Selection Sort), tại sao vòng lặp bên ngoài chỉ cần chạy từ chỉ số 0 đến N-2 (với N là số phần tử)?

  • A. Để tránh lỗi tràn bộ nhớ.
  • B. Vì phần tử đầu tiên đã được coi là đã sắp xếp.
  • C. Để giảm số lần so sánh không cần thiết.
  • D. Vì sau khi N-1 phần tử đầu tiên đã được đặt đúng vị trí, phần tử cuối cùng tự động ở đúng vị trí của nó.

Câu 26: Bạn được yêu cầu sắp xếp một danh sách điểm thi của học sinh và chỉ cần tìm 5 học sinh có điểm cao nhất. Thuật toán sắp xếp đơn giản nào có thể được dừng sớm sau khi tìm và đặt 5 phần tử lớn nhất vào vị trí cuối cùng của danh sách (nếu sắp xếp tăng dần rồi lấy 5 cuối, hoặc sắp xếp giảm dần rồi lấy 5 đầu)?

  • A. Sắp xếp nổi bọt (Bubble Sort).
  • B. Sắp xếp chèn (Insertion Sort).
  • C. Sắp xếp chọn (Selection Sort).
  • D. Cả ba thuật toán đều phải chạy hết để có kết quả.

Câu 27: Xét một đoạn mã Python mô tả vòng lặp bên trong của thuật toán sắp xếp nổi bọt (sắp xếp tăng dần): `for j in range(n - 1 - i): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j]`. Biến `i` trong đoạn mã này thường đóng vai trò gì trong vòng lặp bên ngoài của Bubble Sort?

  • A. Đếm số lượng phần tử đã được đặt đúng vị trí cuối cùng sau mỗi lượt duyệt.
  • B. Lưu trữ chỉ số của phần tử nhỏ nhất trong lượt duyệt hiện tại.
  • C. Lưu trữ giá trị của phần tử đang được so sánh và chèn.
  • D. Đếm tổng số lần hoán đổi đã xảy ra.

Câu 28: So sánh thuật toán sắp xếp nổi bọt (Bubble Sort) và sắp xếp chèn (Insertion Sort). Đặc điểm nào sau đây là ĐÚNG?

  • A. Bubble Sort luôn hiệu quả hơn Insertion Sort trên mọi loại dữ liệu.
  • B. Insertion Sort sử dụng ít bộ nhớ hơn Bubble Sort.
  • C. Bubble Sort có thể dừng sớm nếu danh sách đã được sắp xếp, còn Insertion Sort thì không.
  • D. Insertion Sort thường có hiệu suất tốt hơn Bubble Sort, đặc biệt với dữ liệu gần sắp xếp.

Câu 29: Khi đọc dữ liệu từ tệp văn bản trong Nhiệm vụ thực hành Bài 22, tại sao cần sử dụng hàm `int()` hoặc `float()` để chuyển đổi dữ liệu đọc được trước khi thêm vào danh sách số lượng hoặc điểm?

  • A. Vì dữ liệu đọc từ tệp ban đầu là chuỗi và cần được chuyển đổi sang kiểu số để thực hiện các phép toán so sánh và sắp xếp.
  • B. Để giảm kích thước bộ nhớ lưu trữ dữ liệu.
  • C. Để đảm bảo dữ liệu không bị trùng lặp.
  • D. Để tự động sắp xếp dữ liệu ngay khi đọc.

Câu 30: Phát biểu nào sau đây mô tả đúng một đặc điểm của thuật toán sắp xếp chọn (Selection Sort) khi sắp xếp tăng dần?

  • A. Nó liên tục hoán đổi các phần tử liền kề nếu chúng sai vị trí.
  • B. Nó có số lần hoán đổi (swap) ít hơn so với sắp xếp nổi bọt trong hầu hết các trường hợp.
  • C. Nó là thuật toán hiệu quả nhất khi danh sách đã được sắp xếp trước.
  • D. Nó chia danh sách thành hai nửa và sắp xếp từng nửa một.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 1: Trong thuật toán sắp xếp chèn (Insertion Sort) khi sắp xếp một danh sách theo thứ tự tăng dần, phần tử 'khóa' (key) ở mỗi bước lặp được so sánh và chèn vào đâu trong phần danh sách đã được sắp xếp?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 2: Giả sử bạn có danh sách [8, 4, 6, 2] và đang áp dụng thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp tăng dần. Sau lượt duyệt (pass) đầu tiên hoàn thành, danh sách sẽ có trạng thái như thế nào?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 3: Thuật toán sắp xếp chọn (Selection Sort) khi sắp xếp tăng dần hoạt động bằng cách lặp lại việc tìm kiếm phần tử nào trong phần danh sách chưa được sắp xếp?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 4: Khi thực hiện sắp xếp chèn (Insertion Sort) một danh sách gồm N phần tử đã được sắp xếp gần hết (chỉ một vài phần tử sai vị trí), phát biểu nào sau đây là đúng nhất về hiệu suất của thuật toán?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 5: Giả sử bạn có danh sách [5, 2, 8, 1, 9] và đang sắp xếp tăng dần bằng thuật toán sắp xếp chọn (Selection Sort). Sau khi phần tử đầu tiên được đặt đúng vị trí (hoàn thành bước đầu tiên), danh sách sẽ có trạng thái như thế nào?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 6: Trong thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp tăng dần, mục đích chính của việc lặp đi lặp lại so sánh các cặp phần tử liền kề và hoán đổi nếu sai thứ tự là gì?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 7: Khi nào thì thuật toán sắp xếp nổi bọt (Bubble Sort) được coi là không hiệu quả so với các thuật toán khác như sắp xếp chọn hay chèn?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 8: Để sắp xếp một danh sách các sản phẩm theo giá từ thấp đến cao bằng thuật toán sắp xếp chèn (Insertion Sort), khi xét một sản phẩm 'X', bạn cần so sánh giá của 'X' với giá của các sản phẩm nào trong phần danh sách đã được sắp xếp?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 9: Điểm khác biệt cốt lõi trong cách hoạt động giữa thuật toán sắp xếp chọn (Selection Sort) và sắp xếp nổi bọt (Bubble Sort) là gì?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 10: Để sắp xếp danh sách điểm trung bình môn Tin học của học sinh theo thứ tự giảm dần bằng thuật toán sắp xếp chọn (Selection Sort), ở mỗi bước lặp, bạn cần tìm phần tử nào trong phần danh sách chưa được sắp xếp?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 11: Giả sử bạn đang viết chương trình Python để đọc danh sách số nguyên từ một tệp văn bản, mỗi số trên một dòng, sau đó sắp xếp chúng. Dòng lệnh nào sau đây là cách phổ biến để đọc từng dòng từ tệp và chuyển nó thành số nguyên để thêm vào danh sách `data_list`?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 12: Trong thuật toán sắp xếp chèn (Insertion Sort) sắp xếp tăng dần, khi bạn đã tìm được vị trí đúng để chèn phần tử 'khóa', các phần tử lớn hơn 'khóa' trong phần đã sắp xếp cần được thực hiện hành động gì để tạo chỗ trống?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 13: Giả sử bạn có danh sách [7, 3, 5, 1] và đang sắp xếp tăng dần bằng thuật toán sắp xếp chèn (Insertion Sort). Sau khi xử lý xong phần tử thứ hai (giá trị 3), danh sách sẽ có trạng thái như thế nào?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 14: Bạn cần sắp xếp một danh sách các giao dịch tài chính theo ngày giờ phát sinh. Dữ liệu thường xuyên được thêm vào danh sách này và bạn muốn duy trì danh sách luôn được sắp xếp. Thuật toán sắp xếp đơn giản nào sau đây có thể phù hợp nhất cho tình huống này nếu danh sách không quá lớn?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 15: Trong thuật toán sắp xếp chọn (Selection Sort) khi sắp xếp một danh sách gồm N phần tử, số lần hoán đổi (swap) tối đa có thể xảy ra là bao nhiêu?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 16: Giả sử bạn có danh sách [9, 1, 7, 3] và đang áp dụng thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp giảm dần. Sau lượt duyệt (pass) đầu tiên hoàn thành, danh sách sẽ có trạng thái như thế nào?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 17: Đoạn mã giả sau mô tả một phần của thuật toán sắp xếp đơn giản: ( ext{Cho } i ext{ từ } 1 ext{ đến } N-1 ): ( ext{khóa = danh_sach}[i] ); ( j = i - 1 ); ( ext{Trong khi } j ge 0 ext{ và danh_sach}[j] > ext{khóa} ): ( ext{danh_sach}[j+1] = ext{danh_sach}[j] ); ( j = j - 1 ); ( ext{danh_sach}[j+1] = ext{khóa} ). Đây là thuật toán nào?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 18: Khi sử dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp một danh sách, điều g?? được đảm bảo đúng sau khi hoàn thành bước lặp thứ k (tính từ 0)?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 19: Trong thuật toán sắp xếp chèn (Insertion Sort), biến `j` thường được sử dụng để làm gì trong vòng lặp bên trong?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 20: Bạn có một danh sách rất lớn các số nguyên cần sắp xếp. Thuật toán nào trong số các thuật toán đơn giản (nổi bọt, chọn, chèn) có thể là lựa chọn kém hiệu quả nhất về mặt thời gian thực hiện trên dữ liệu ngẫu nhiên?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 21: Để sắp xếp danh sách điểm theo thứ tự giảm dần bằng thuật toán sắp xếp nổi bọt (Bubble Sort), bạn cần điều chỉnh điều kiện so sánh giữa hai phần tử liền kề như thế nào so với sắp xếp tăng dần?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 22: Xét danh sách [4, 1, 3, 2]. Áp dụng thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần. Trạng thái của danh sách sau khi xử lý xong phần tử thứ ba (giá trị 3) là gì?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 23: Mục đích của việc sử dụng biến tạm thời (ví dụ: `temp`) khi hoán đổi giá trị của hai biến trong lập trình là gì?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 24: Khi nào thì thuật toán sắp xếp chèn (Insertion Sort) có hiệu suất tốt nhất (trường hợp tốt nhất)?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 25: Trong thuật toán sắp xếp chọn (Selection Sort), tại sao vòng lặp bên ngoài chỉ cần chạy từ chỉ số 0 đến N-2 (với N là số phần tử)?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 26: Bạn được yêu cầu sắp xếp một danh sách điểm thi của học sinh và chỉ cần tìm 5 học sinh có điểm cao nhất. Thuật toán sắp xếp đơn giản nào có thể được dừng sớm sau khi tìm và đặt 5 phần tử lớn nhất vào vị trí cuối cùng của danh sách (nếu sắp xếp tăng dần rồi lấy 5 cuối, hoặc sắp xếp giảm dần rồi lấy 5 đầu)?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 27: Xét một đoạn mã Python mô tả vòng lặp bên trong của thuật toán sắp xếp nổi bọt (sắp xếp tăng dần): `for j in range(n - 1 - i): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j]`. Biến `i` trong đoạn mã này thường đóng vai trò gì trong vòng lặp bên ngoài của Bubble Sort?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 28: So sánh thuật toán sắp xếp nổi bọt (Bubble Sort) và sắp xếp chèn (Insertion Sort). Đặc điểm nào sau đây là ĐÚNG?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 29: Khi đọc dữ liệu từ tệp văn bản trong Nhiệm vụ thực hành Bài 22, tại sao cần sử dụng hàm `int()` hoặc `float()` để chuyển đổi dữ liệu đọc được trước khi thêm vào danh sách số lượng hoặc điểm?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 02

Câu 30: Phát biểu nào sau đây mô tả đúng một đặc điểm của thuật toán sắp xếp chọn (Selection Sort) khi sắp xếp tăng dần?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 03

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 03 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong Nhiệm vụ 1 của bài thực hành, mục tiêu chính là sắp xếp danh sách số lượng mặt hàng trong kho. Thuật toán sắp xếp nào được đề xuất sử dụng cho nhiệm vụ này và lý do tại sao?

  • A. Sắp xếp chọn, vì nó luôn hiệu quả nhất.
  • B. Sắp xếp chèn, vì nó phù hợp với danh sách có kích thước nhỏ hoặc gần sắp xếp.
  • C. Sắp xếp nổi bọt, vì nó dễ hiểu nhất.
  • D. Sắp xếp nhanh, vì nó là thuật toán hiện đại.

Câu 2: Giả sử danh sách số lượng mặt hàng ban đầu là `[50, 20, 80, 10, 40]`. Áp dụng thuật toán Sắp xếp chèn (tăng dần). Sau khi xử lý xong phần tử thứ 2 (giá trị 20), danh sách sẽ có trạng thái như thế nào?

  • A. [20, 50, 80, 10, 40] (Phần [20, 50] đã sắp xếp)
  • B. [20, 10, 40, 50, 80]
  • C. [20, 50, 80, 10, 40]
  • D. [10, 20, 40, 50, 80]

Câu 3: Trong mã Python thực hiện Sắp xếp chèn cho danh sách `arr` theo thứ tự tăng dần, đoạn mã nào sau đây thường được sử dụng để tìm vị trí thích hợp và dịch chuyển các phần tử?

  • A. ```python
    key = arr[i]
    j = i - 1
    while j >= 0 and key < arr[j]: arr[j + 1] = arr[j] j -= 1 arr[j + 1] = key ```
  • B. ```python
    for j in range(len(arr) - 1):
    if arr[j] > arr[j+1]:
    arr[j], arr[j+1] = arr[j+1], arr[j]
    ```
  • C. ```python
    min_idx = i
    for j in range(i+1, len(arr)):
    if arr[min_idx] > arr[j]:
    min_idx = j
    arr[i], arr[min_idx] = arr[min_idx], arr[i]
    ```
  • D. ```python
    arr.sort()
    ```

Câu 4: Nhiệm vụ 2 yêu cầu sắp xếp danh sách điểm trung bình môn Tin học theo thứ tự giảm dần. Thuật toán nào được đề xuất sử dụng cho nhiệm vụ này trong bài thực hành?

  • A. Sắp xếp chọn
  • B. Sắp xếp chèn
  • C. Sắp xếp nổi bọt
  • D. Sắp xếp trộn

Câu 5: Để sắp xếp một danh sách `scores` theo thứ tự giảm dần bằng thuật toán Sắp xếp chọn, trong mỗi lần lặp của vòng lặp ngoài (duyệt qua các vị trí cần sắp xếp), chúng ta cần tìm phần tử có giá trị như thế nào trong phần còn lại của danh sách chưa được sắp xếp?

  • A. Nhỏ nhất, để đưa về cuối danh sách.
  • B. Nhỏ nhất, để đưa về đầu danh sách.
  • C. Lớn nhất, để đưa về cuối danh sách.
  • D. Lớn nhất, để đưa về đầu danh sách.

Câu 6: Giả sử danh sách điểm trung bình là `[8.5, 7.0, 9.0, 6.5, 8.0]`. Áp dụng thuật toán Sắp xếp chọn (giảm dần). Sau khi kết thúc vòng lặp ngoài đầu tiên (xử lý vị trí đầu tiên), danh sách sẽ có trạng thái như thế nào?

  • A. [8.5, 7.0, 9.0, 6.5, 8.0]
  • B. [6.5, 7.0, 8.0, 8.5, 9.0]
  • C. [9.0, 7.0, 8.5, 6.5, 8.0]
  • D. [8.5, 9.0, 7.0, 6.5, 8.0]

Câu 7: Trong mã Python cho Sắp xếp chọn giảm dần, đoạn mã nào sau đây thường được sử dụng để tìm chỉ số của phần tử lớn nhất trong phần chưa sắp xếp của danh sách `arr` (bắt đầu từ chỉ số `i`)?

  • A. ```python
    min_idx = i
    for j in range(i + 1, len(arr)):
    if arr[min_idx] > arr[j]:
    min_idx = j
    ```
  • B. ```python
    max_idx = i
    for j in range(i + 1, len(arr)):
    if arr[max_idx] < arr[j]: max_idx = j ```
  • C. ```python
    for j in range(len(arr) - 1):
    if arr[j] > arr[j+1]:
    max_idx = j
    ```
  • D. ```python
    max_idx = arr.index(max(arr[i:]))
    ```

Câu 8: Khi đọc dữ liệu từ tệp văn bản (ví dụ: `kho.inp` trong Nhiệm vụ 1), mỗi dòng đọc được từ tệp thường ở định dạng chuỗi. Để sử dụng giá trị này làm số lượng mặt hàng để sắp xếp, cần thực hiện thao tác chuyển đổi kiểu dữ liệu nào?

  • A. Chuyển từ chuỗi (string) sang số nguyên (int).
  • B. Chuyển từ chuỗi (string) sang số thực (float).
  • C. Chuyển từ số nguyên (int) sang chuỗi (string).
  • D. Không cần chuyển đổi, có thể sử dụng trực tiếp.

Câu 9: Sau khi sắp xếp danh sách số lượng mặt hàng (Nhiệm vụ 1) hoặc điểm trung bình (Nhiệm vụ 2), kết quả cần được ghi ra tệp văn bản (ví dụ: `kho.out`). Mỗi phần tử sau khi sắp xếp thường được ghi trên một dòng riêng biệt. Để làm được điều này, khi ghi từng phần tử `item` vào tệp, cần thêm ký tự đặc biệt nào ở cuối mỗi dòng?

  • A. Ký tự khoảng trắng (" ").
  • B. Ký tự tab ("t").
  • C. Ký tự xuống dòng ("n").
  • D. Ký tự kết thúc tệp (EOF).

Câu 10: Xét đoạn code Python sau thực hiện Sắp xếp chèn tăng dần trên danh sách `data`: `data = [15, 8, 22, 10]`. Vòng lặp ngoài `for i in range(1, len(data))` bắt đầu chạy từ `i=1`. Khi `i=1`, giá trị `key` là `data[1]` (tức 8). Vòng lặp `while` sẽ thực hiện so sánh và dịch chuyển như thế nào?

  • A. So sánh 8 với 15, dịch chuyển 15 sang phải, chèn 8 vào vị trí đầu tiên.
  • B. So sánh 8 với 15, 22, 10 và không dịch chuyển gì.
  • C. So sánh 8 với 15 và 22, dịch chuyển cả hai sang phải.
  • D. So sánh 8 với 15, dịch chuyển 15 sang phải, chèn 8 vào vị trí thứ hai.

Câu 11: Trong Nhiệm vụ 2, giả sử danh sách điểm là `[7.5, 8.0, 7.0, 9.0]`. Áp dụng Sắp xếp chọn giảm dần. Sau khi kết thúc vòng lặp ngoài thứ hai (xử lý vị trí thứ hai, tức chỉ số 1), danh sách sẽ có trạng thái như thế nào?

  • A. [9.0, 8.0, 7.0, 7.5]
  • B. [9.0, 8.0, 7.5, 7.0]
  • C. [7.0, 7.5, 8.0, 9.0]
  • D. [8.0, 7.0, 9.0, 7.5]

Câu 12: Khi triển khai thuật toán Sắp xếp chọn giảm dần, biến `max_idx` trong vòng lặp bên trong dùng để làm gì?

  • A. Lưu giá trị lớn nhất tìm được.
  • B. Lưu giá trị nhỏ nhất tìm được.
  • C. Lưu chỉ số của phần tử lớn nhất tìm được.
  • D. Lưu chỉ số của phần tử nhỏ nhất tìm được.

Câu 13: Giả sử bạn cần sắp xếp một danh sách rất lớn (ví dụ: 100.000 phần tử). Dựa trên hiểu biết về độ phức tạp (dù chưa học sâu), thuật toán nào trong ba thuật toán đơn giản (Nổi bọt, Chọn, Chèn) có thể cho hiệu suất kém nhất và tại sao?

  • A. Sắp xếp nổi bọt, vì nó có thể thực hiện nhiều phép hoán đổi không cần thiết.
  • B. Sắp xếp chọn, vì nó luôn phải tìm phần tử lớn nhất/nhỏ nhất trong phần còn lại.
  • C. Sắp xếp chèn, vì nó phải dịch chuyển các phần tử.
  • D. Cả ba đều có hiệu suất tương đương nhau trên danh sách lớn.

Câu 14: Trong Nhiệm vụ 1 (sắp xếp số lượng mặt hàng tăng dần bằng Sắp xếp chèn), nếu tệp `kho.inp` chứa các số `[30, 10, 50, 20]`, nội dung của tệp `kho.out` sau khi chương trình chạy thành công sẽ là gì?

  • A. 30
    10
    50
    20
  • B. 10
    20
    30
    50
  • C. 50
    30
    20
    10
  • D. [10, 20, 30, 50]

Câu 15: Trong Nhiệm vụ 2 (sắp xếp điểm trung bình giảm dần bằng Sắp xếp chọn), nếu tệp `diem.inp` chứa các số `[7.0, 8.5, 6.0, 9.0]`, nội dung của tệp `diem.out` sau khi chương trình chạy thành công sẽ là gì?

  • A. 7.0
    8.5
    6.0
    9.0
  • B. 6.0
    7.0
    8.5
    9.0
  • C. [9.0, 8.5, 7.0, 6.0]
  • D. 9.0
    8.5
    7.0
    6.0

Câu 16: Xét đoạn code Python để mở tệp và đọc dữ liệu: `with open("data.inp", "r", encoding="utf8") as f: lines = f.readlines()`. Biến `lines` sẽ chứa dữ liệu ở định dạng nào?

  • A. Một chuỗi duy nhất chứa toàn bộ nội dung tệp.
  • B. Một danh sách các số nguyên.
  • C. Một danh sách các chuỗi, mỗi chuỗi là một dòng từ tệp.
  • D. Một danh sách các số thực.

Câu 17: Sự khác biệt cơ bản trong cách hoạt động giữa Sắp xếp chèn và Sắp xếp chọn là gì?

  • A. Sắp xếp chèn xây dựng dãy đã sắp xếp bằng cách chèn từng phần tử vào đúng vị trí, trong khi Sắp xếp chọn xây dựng dãy đã sắp xếp bằng cách chọn phần tử lớn nhất/nhỏ nhất và đổi chỗ.
  • B. Sắp xếp chèn hiệu quả hơn Sắp xếp chọn trên mọi loại dữ liệu.
  • C. Sắp xếp chọn thực hiện nhiều phép hoán đổi hơn Sắp xếp chèn.
  • D. Sắp xếp chèn chỉ dùng để sắp xếp tăng dần, còn Sắp xếp chọn dùng để sắp xếp giảm dần.

Câu 18: Giả sử bạn có một danh sách `data = [5, 1, 4, 2, 8]` và áp dụng Sắp xếp nổi bọt (Bubble Sort) để sắp xếp tăng dần. Sau lần duyệt (pass) đầu tiên của vòng lặp ngoài, danh sách sẽ ở trạng thái nào?

  • A. [1, 2, 4, 5, 8]
  • B. [1, 4, 2, 5, 8]
  • C. [5, 4, 2, 1, 8]
  • D. [5, 1, 4, 2, 8]

Câu 19: Trong mã Python cho Sắp xếp chèn tăng dần, tại sao vòng lặp ngoài thường bắt đầu từ chỉ số 1 (`for i in range(1, len(arr))`)?

  • A. Để bỏ qua phần tử đầu tiên vì nó luôn ở đúng vị trí.
  • B. Để đảm bảo thuật toán hoạt động với danh sách rỗng.
  • C. Để so sánh phần tử hiện tại với phần tử liền sau nó.
  • D. Để bắt đầu xử lý từ phần tử thứ hai và chèn vào phần đầu tiên đã được coi là đã sắp xếp.

Câu 20: Trong Sắp xếp chọn giảm dần danh sách `data`, sau khi tìm thấy chỉ số `max_idx` của phần tử lớn nhất trong phần chưa sắp xếp (bắt đầu từ chỉ số `i`), thao tác tiếp theo cần làm là gì để đưa phần tử lớn nhất về đúng vị trí?

  • A. Dịch chuyển tất cả các phần tử từ `i` đến `max_idx` sang phải.
  • B. Xóa phần tử tại `max_idx` và chèn nó vào vị trí `i`.
  • C. Hoán đổi (đổi chỗ) phần tử tại vị trí `i` với phần tử tại vị trí `max_idx`.
  • D. So sánh phần tử tại `i` với phần tử tại `max_idx`.

Câu 21: Một ưu điểm của Sắp xếp chèn so với Sắp xếp chọn trong một số trường hợp thực tế (không xét độ phức tạp lý thuyết trên mọi bộ dữ liệu) là gì?

  • A. Luôn nhanh hơn Sắp xếp chọn trên mọi bộ dữ liệu.
  • B. Có thể hiệu quả hơn Sắp xếp chọn nếu dữ liệu đầu vào gần như đã được sắp xếp.
  • C. Thực hiện ít phép hoán đổi hơn Sắp xếp chọn.
  • D. Đảm bảo tính ổn định (duy trì thứ tự tương đối của các phần tử bằng nhau), điều mà Sắp xếp chọn không đảm bảo.

Câu 22: Hãy phân tích đoạn code sau dùng để ghi danh sách `result_list` ra tệp `output.txt`, mỗi phần tử một dòng: `with open("output.txt", "w") as f: for item in result_list: f.write(str(item) + "n")`. Nếu `result_list = [10, 20, 30]`, nội dung tệp `output.txt` sẽ như thế nào?

  • A. [10, 20, 30]
  • B. 10 20 30
  • C. 10
    20
    30
  • D. 10, 20, 30

Câu 23: Khi thực hiện Sắp xếp chèn tăng dần trên danh sách `[4, 1, 3, 2]`, hãy cho biết trạng thái của danh sách sau khi phần tử có giá trị 3 (ban đầu ở chỉ số 2) được chèn vào đúng vị trí của nó trong phần đã sắp xếp.

  • A. [1, 3, 4, 2]
  • B. [1, 2, 3, 4]
  • C. [4, 1, 3, 2]
  • D. [1, 4, 3, 2]

Câu 24: Trong Sắp xếp chọn giảm dần trên danh sách `[60, 20, 40, 10, 50]`, sau khi kết thúc vòng lặp ngoài thứ ba (xử lý vị trí thứ ba, tức chỉ số 2), danh sách sẽ có trạng thái như thế nào?

  • A. [60, 50, 40, 20, 10]
  • B. [60, 40, 50, 10, 20]
  • C. [10, 20, 40, 50, 60]
  • D. [60, 50, 40, 10, 20]

Câu 25: Giả sử bạn đang thực hiện Nhiệm vụ 1 (sắp xếp tăng dần) và nhận thấy rằng khi chạy chương trình với tệp `kho.inp` chứa một danh sách số đã được sắp xếp từ trước (ví dụ: `[10, 20, 30, 40]`), chương trình vẫn hoạt động đúng nhưng có vẻ rất nhanh. Điều này phù hợp với đặc điểm của thuật toán nào trong ba thuật toán đơn giản?

  • A. Sắp xếp chọn
  • B. Sắp xếp nổi bọt
  • C. Sắp xếp chèn
  • D. Cả ba thuật toán đều chậm như nhau với dữ liệu đã sắp xếp.

Câu 26: Trong ngữ cảnh đọc dữ liệu từ tệp, việc sử dụng `encoding="utf8"` khi mở tệp có ý nghĩa gì?

  • A. Chỉ định mã hóa ký tự của tệp là UTF-8, giúp đọc đúng các ký tự đặc biệt hoặc tiếng Việt.
  • B. Tăng tốc độ đọc tệp.
  • C. Chuyển đổi nội dung tệp thành số nguyên.
  • D. Kiểm tra xem tệp có tồn tại hay không.

Câu 27: Khi viết hàm thực hiện một thuật toán sắp xếp (ví dụ: `InsertionSort(arr)`), việc hàm nhận vào danh sách `arr` và thực hiện thay đổi trực tiếp trên danh sách đó (thay vì trả về một danh sách mới đã sắp xếp) là hành vi phổ biến. Điều này trong lập trình được gọi là gì?

  • A. Đệ quy (Recursion)
  • B. Thay đổi tại chỗ (In-place modification)
  • C. Tham trị (Pass by value)
  • D. Tham chiếu (Pass by reference)

Câu 28: Tại sao trong Sắp xếp chèn tăng dần, khi dịch chuyển phần tử, ta lại gán `arr[j + 1] = arr[j]` và sau đó giảm `j` đi 1 (`j -= 1`)?

  • A. Để dịch chuyển phần tử `arr[j]` sang phải một vị trí, tạo chỗ trống để chèn phần tử `key` vào đúng vị trí sau này.
  • B. Để đổi chỗ phần tử `arr[j]` với phần tử `arr[j+1]`.
  • C. Để tìm phần tử lớn nhất trong phần chưa sắp xếp.
  • D. Để kết thúc vòng lặp `while` ngay lập tức.

Câu 29: Trong Sắp xếp chọn giảm dần, giả sử vòng lặp ngoài đang ở chỉ số `i`. Vòng lặp bên trong (`for j in range(i + 1, len(arr))`) tìm `max_idx` trong đoạn `arr[i+1:]`. Điều này có ý nghĩa gì trong quá trình sắp xếp?

  • A. Tìm phần tử lớn nhất trong toàn bộ danh sách.
  • B. Tìm phần tử nhỏ nhất trong phần chưa sắp xếp.
  • C. Tìm phần tử lớn nhất trong phần đã sắp xếp.
  • D. Tìm phần tử lớn nhất trong phần danh sách còn lại chưa được sắp xếp (từ vị trí `i+1` đến cuối).

Câu 30: Khi so sánh các thuật toán sắp xếp đơn giản (Nổi bọt, Chọn, Chèn) trong thực tế, yếu tố nào sau đây ít được coi là lợi thế đáng kể của một thuật toán này so với thuật toán khác khi xử lý các danh sách có kích thước rất lớn?

  • A. Sự khác biệt về tốc độ thực thi.
  • B. Tính đơn giản trong cài đặt.
  • C. Khả năng sắp xếp tại chỗ (in-place).
  • D. Yêu cầu bộ nhớ bổ sung.

Câu 31: Giả sử cần đọc dữ liệu từ tệp `input.txt` có cấu trúc mỗi dòng là: `Tên: Điểm`. Ví dụ: `An: 8.5
Binh: 7.0
Cuong: 9.0`. Để trích xuất chỉ phần điểm (số thực) từ mỗi dòng, cần thực hiện các thao tác xử lý chuỗi nào sau khi đọc được một dòng?

  • A. Tìm vị trí của dấu ":", lấy phần bên trái và chuyển thành số thực.
  • B. Tìm vị trí của dấu ":", lấy phần bên phải, loại bỏ ký tự xuống dòng và khoảng trắng (nếu có), rồi chuyển thành số thực.
  • C. Chuyển trực tiếp toàn bộ dòng thành số thực.
  • D. Chỉ cần đọc dòng và sử dụng trực tiếp vì nó đã là số thực.

Câu 32: Trong Nhiệm vụ 1, việc sắp xếp số lượng mặt hàng theo thứ tự tăng dần có ý nghĩa thực tế gì trong quản lý kho?

  • A. Giúp dễ dàng xác định các mặt hàng có số lượng tồn kho thấp nhất.
  • B. Giúp dễ dàng xác định các mặt hàng có số lượng tồn kho cao nhất.
  • C. Không có ý nghĩa thực tế, chỉ là bài tập.
  • D. Giúp tính tổng số lượng mặt hàng trong kho.

Câu 33: Trong Nhiệm vụ 2, việc sắp xếp điểm trung bình học sinh theo thứ tự giảm dần có ý nghĩa thực tế gì trong quản lý kết quả học tập?

  • A. Giúp tính điểm trung bình của cả lớp.
  • B. Giúp xác định học sinh có điểm trung bình thấp nhất.
  • C. Giúp xác định thứ tự ngẫu nhiên của học sinh.
  • D. Giúp dễ dàng xác định học sinh có điểm trung bình cao nhất.

Câu 34: Xét đoạn code Sắp xếp chèn tăng dần. Nếu danh sách đầu vào là `[5]`, thuật toán sẽ hoạt động như thế nào?

  • A. Vòng lặp ngoài không chạy, danh sách giữ nguyên trạng thái ban đầu.
  • B. Thuật toán sẽ gây lỗi vì danh sách quá ngắn.
  • C. Phần tử duy nhất sẽ được so sánh với chính nó.
  • D. Thuật toán sẽ thực hiện một lần hoán đổi.

Câu 35: Xét đoạn code Sắp xếp chọn giảm dần. Nếu danh sách đầu vào là `[10, 20]`, sau khi thuật toán kết thúc, danh sách sẽ như thế nào?

  • A. [10, 20]
  • B. [20, 10]
  • C. Danh sách không thay đổi.
  • D. Chỉ có phần tử 10 được xử lý.

Câu 36: Trong Sắp xếp chèn tăng dần, nếu phần tử `key` đang xét nhỏ hơn tất cả các phần tử trong phần đã sắp xếp đứng trước nó, nó sẽ được chèn vào vị trí nào?

  • A. Vị trí ngay sau phần tử lớn nhất trong phần đã sắp xếp.
  • B. Vị trí cuối cùng của danh sách.
  • C. Vị trí ban đầu của nó.
  • D. Vị trí đầu tiên của danh sách.

Câu 37: Trong Sắp xếp chọn giảm dần, nếu phần tử lớn nhất trong phần chưa sắp xếp đã nằm ở vị trí đầu tiên của phần đó (tức là ở chỉ số `i`), thuật toán sẽ thực hiện thao tác gì tiếp theo?

  • A. Tìm phần tử nhỏ nhất trong phần còn lại.
  • B. Thực hiện hoán đổi phần tử tại vị trí `i` với chính nó (không thay đổi danh sách) và chuyển sang xử lý vị trí tiếp theo.
  • C. Dịch chuyển tất cả các phần tử còn lại sang trái.
  • D. Dừng thuật toán vì phần còn lại đã sắp xếp.

Câu 38: Giả sử bạn cần đọc một tệp `data.inp` chứa 1000 số nguyên, mỗi số trên một dòng, để sắp xếp. Đoạn code nào sau đây là cách đúng để đọc tất cả các số này vào một danh sách `numbers`?

  • A. ```python
    numbers = open("data.inp", "r").readlines()
    ```
  • B. ```python
    numbers = list(map(float, open("data.inp", "r").readlines()))
    ```
  • C. ```python
    numbers = []
    with open("data.inp", "r", encoding="utf8") as f:
    for line in f:
    numbers.append(int(line.strip()))
    ```
  • D. ```python
    numbers = [int(line) for line in open("data.inp", "r")]
    ```

Câu 39: Khi viết kết quả sắp xếp ra tệp `output.txt`, tại sao việc sử dụng `with open(...) as f:` được khuyến khích thay vì chỉ dùng `f = open(...)` và sau đó là `f.close()`?

  • A. Đảm bảo tệp được tự động đóng ngay cả khi có lỗi xảy ra trong quá trình xử lý.
  • B. Giúp mã chạy nhanh hơn.
  • C. Chỉ dùng được cho tệp văn bản.
  • D. Ngăn chặn việc ghi đè lên nội dung tệp cũ.

Câu 40: Trong Sắp xếp chèn tăng dần, nếu danh sách đầu vào đã được sắp xếp ngược (ví dụ: `[50, 40, 30, 20, 10]`), thuật toán sẽ hoạt động như thế nào so với danh sách ngẫu nhiên?

  • A. Rất nhanh, tương đương trường hợp dữ liệu đã sắp xếp tăng dần.
  • B. Hiệu quả hơn so với dữ liệu ngẫu nhiên vì ít phần tử cần dịch chuyển.
  • C. Thực hiện ít phép so sánh nhưng nhiều phép hoán đổi.
  • D. Thực hiện số lượng phép dịch chuyển và so sánh tối đa, là trường hợp xấu nhất cho thuật toán.

Câu 41: Trong Sắp xếp chọn, số lượng phép hoán đổi (đổi chỗ phần tử) được thực hiện có phụ thuộc vào trạng thái ban đầu của danh sách hay không?

  • A. Có, danh sách càng lộn xộn thì số phép hoán đổi càng nhiều.
  • B. Không, số lượng phép hoán đổi là cố định (n-1) bất kể trạng thái ban đầu.
  • C. Chỉ phụ thuộc vào việc danh sách sắp xếp tăng hay giảm.
  • D. Phụ thuộc vào số lượng phần tử bằng nhau trong danh sách.

Câu 42: Khi đọc tệp `diem.inp` trong Nhiệm vụ 2, nếu một dòng trong tệp không phải là số thực hợp lệ (ví dụ: chứa chữ cái), điều gì có khả năng xảy ra khi cố gắng chuyển đổi nó sang số thực bằng `float()`?

  • A. Chương trình sẽ bỏ qua dòng đó và tiếp tục.
  • B. Dòng đó sẽ được chuyển thành giá trị 0.0.
  • C. Chương trình sẽ gặp lỗi (ValueError) và dừng lại.
  • D. Phần số trong dòng sẽ được trích xuất, phần chữ bị bỏ qua.

Câu 43: So sánh số lượng phép so sánh giữa Sắp xếp chèn và Sắp xếp chọn trên một danh sách có n phần tử. Phát biểu nào sau đây là đúng trong trường hợp xấu nhất?

  • A. Số lượng phép so sánh của Sắp xếp chèn và Sắp xếp chọn là tương đương nhau (cùng bậc O(n^2)).
  • B. Sắp xếp chèn luôn thực hiện ít phép so sánh hơn Sắp xếp chọn.
  • C. Sắp xếp chọn luôn thực hiện ít phép so sánh hơn Sắp xếp chèn.
  • D. Sắp xếp chèn không thực hiện phép so sánh nào trong trường hợp xấu nhất.

Câu 44: Điều gì xảy ra nếu bạn cố gắng mở một tệp để đọc (chế độ "r") nhưng tệp đó không tồn tại?

  • A. Một tệp rỗng mới sẽ được tạo ra.
  • B. Chương trình sẽ gặp lỗi `FileNotFoundError` và dừng lại.
  • C. Chương trình sẽ tự động chuyển sang chế độ ghi ("w").
  • D. Hàm `open` sẽ trả về giá trị `None`.

Câu 45: Khi sử dụng Sắp xếp chèn tăng dần, phần nào của danh sách được coi là "đã sắp xếp" trong mỗi bước lặp của vòng lặp ngoài?

  • A. Phần đầu của danh sách.
  • B. Phần cuối của danh sách.
  • C. Toàn bộ danh sách.
  • D. Phần tử duy nhất đang được xét.

Câu 46: Trong Sắp xếp chọn giảm dần, sau mỗi lần lặp của vòng lặp ngoài (từ i = 0 đến n-2), phần tử nào được đảm bảo nằm đúng vị trí cuối cùng của nó trong dãy đã sắp xếp giảm dần?

  • A. Phần tử nhỏ nhất trong phần còn lại.
  • B. Phần tử lớn nhất trong phần còn lại.
  • C. Phần tử tại vị trí `i+1`.
  • D. Phần tử cuối cùng của danh sách.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Câu 1: Trong Nhiệm vụ 1 của bài thực hành, mục tiêu chính là sắp xếp danh sách số lượng mặt hàng trong kho. Thuật toán sắp xếp nào được đề xuất sử dụng cho nhiệm vụ này và lý do tại sao?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Câu 2: Giả sử danh sách số lượng mặt hàng ban đầu là `[50, 20, 80, 10, 40]`. Áp dụng thuật toán Sắp xếp chèn (tăng dần). Sau khi xử lý xong phần tử thứ 2 (giá trị 20), danh sách sẽ có trạng thái như thế nào?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Câu 3: Trong mã Python thực hiện Sắp xếp chèn cho danh sách `arr` theo thứ tự tăng dần, đoạn mã nào sau đây thường được sử dụng để tìm vị trí thích hợp và dịch chuyển các phần tử?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Nhiệm vụ 2 yêu cầu sắp xếp danh sách điểm trung bình môn Tin học theo thứ tự giảm dần. Thuật toán nào được đề xuất sử dụng cho nhiệm vụ này trong bài thực hành?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Để sắp xếp một danh sách `scores` theo thứ tự giảm dần bằng thuật toán Sắp xếp chọn, trong mỗi lần lặp của vòng lặp ngoài (duyệt qua các vị trí cần sắp xếp), chúng ta cần tìm phần tử có giá trị như thế nào trong phần còn lại của danh sách chưa được sắp xếp?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Giả sử danh sách điểm trung bình là `[8.5, 7.0, 9.0, 6.5, 8.0]`. Áp dụng thuật toán Sắp xếp chọn (giảm dần). Sau khi kết thúc vòng lặp ngoài đầu tiên (xử lý vị trí đầu tiên), danh sách sẽ có trạng thái như thế nào?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Trong mã Python cho Sắp xếp chọn giảm dần, đoạn mã nào sau đây thường được sử dụng để tìm chỉ số của phần tử lớn nhất trong phần chưa sắp xếp của danh sách `arr` (bắt đầu từ chỉ số `i`)?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Khi đọc dữ liệu từ tệp văn bản (ví dụ: `kho.inp` trong Nhiệm vụ 1), mỗi dòng đọc được từ tệp thường ở định dạng chuỗi. Để sử dụng giá trị này làm số lượng mặt hàng để sắp xếp, cần thực hiện thao tác chuyển đổi kiểu dữ liệu nào?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Sau khi sắp xếp danh sách số lượng mặt hàng (Nhiệm vụ 1) hoặc điểm trung bình (Nhiệm vụ 2), kết quả cần được ghi ra tệp văn bản (ví dụ: `kho.out`). Mỗi phần tử sau khi sắp xếp thường được ghi trên một dòng riêng biệt. Để làm được điều này, khi ghi từng phần tử `item` vào tệp, cần thêm ký tự đặc biệt nào ở cuối mỗi dòng?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Xét đoạn code Python sau thực hiện Sắp xếp chèn tăng dần trên danh sách `data`: `data = [15, 8, 22, 10]`. Vòng lặp ngoài `for i in range(1, len(data))` bắt đầu chạy từ `i=1`. Khi `i=1`, giá trị `key` là `data[1]` (tức 8). Vòng lặp `while` sẽ thực hiện so sánh và dịch chuyển như thế nào?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Trong Nhiệm vụ 2, giả sử danh sách điểm là `[7.5, 8.0, 7.0, 9.0]`. Áp dụng Sắp xếp chọn giảm dần. Sau khi kết thúc vòng lặp ngoài thứ hai (xử lý vị trí thứ hai, tức chỉ số 1), danh sách sẽ có trạng thái như thế nào?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Khi triển khai thuật toán Sắp xếp chọn giảm dần, biến `max_idx` trong vòng lặp bên trong dùng để làm gì?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Giả sử bạn cần sắp xếp một danh sách rất lớn (ví dụ: 100.000 phần tử). Dựa trên hiểu biết về độ phức tạp (dù chưa học sâu), thuật toán nào trong ba thuật toán đơn giản (Nổi bọt, Chọn, Chèn) có thể cho hiệu suất kém nhất và tại sao?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Trong Nhiệm vụ 1 (sắp xếp số lượng mặt hàng tăng dần bằng Sắp xếp chèn), nếu tệp `kho.inp` chứa các số `[30, 10, 50, 20]`, nội dung của tệp `kho.out` sau khi chương trình chạy thành công sẽ là gì?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Trong Nhiệm vụ 2 (sắp xếp điểm trung bình giảm dần bằng Sắp xếp chọn), nếu tệp `diem.inp` chứa các số `[7.0, 8.5, 6.0, 9.0]`, nội dung của tệp `diem.out` sau khi chương trình chạy thành công sẽ là gì?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Xét đoạn code Python để mở tệp và đọc dữ liệu: `with open('data.inp', 'r', encoding='utf8') as f: lines = f.readlines()`. Biến `lines` sẽ chứa dữ liệu ở định dạng nào?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Sự khác biệt cơ bản trong cách hoạt động giữa Sắp xếp chèn và Sắp xếp chọn là gì?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Giả sử bạn có một danh sách `data = [5, 1, 4, 2, 8]` và áp dụng Sắp xếp nổi bọt (Bubble Sort) để sắp xếp tăng dần. Sau lần duyệt (pass) *đầu tiên* của vòng lặp ngoài, danh sách sẽ ở trạng thái nào?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Trong mã Python cho Sắp xếp chèn tăng dần, tại sao vòng lặp ngoài thường bắt đầu từ chỉ số 1 (`for i in range(1, len(arr))`)?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Trong Sắp xếp chọn giảm dần danh sách `data`, sau khi tìm thấy chỉ số `max_idx` của phần tử lớn nhất trong phần chưa sắp xếp (bắt đầu từ chỉ số `i`), thao tác tiếp theo cần làm là gì để đưa phần tử lớn nhất về đúng vị trí?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Một ưu điểm của Sắp xếp chèn so với Sắp xếp chọn trong một số trường hợp thực tế (không xét độ phức tạp lý thuyết trên mọi bộ dữ liệu) là gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Hãy phân tích đoạn code sau dùng để ghi danh sách `result_list` ra tệp `output.txt`, mỗi phần tử một dòng: `with open('output.txt', 'w') as f: for item in result_list: f.write(str(item) + 'n')`. Nếu `result_list = [10, 20, 30]`, nội dung tệp `output.txt` sẽ như thế nào?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Khi thực hiện Sắp xếp chèn tăng dần trên danh sách `[4, 1, 3, 2]`, hãy cho biết trạng thái của danh sách sau khi phần tử có giá trị 3 (ban đầu ở chỉ số 2) được chèn vào đúng vị trí của nó trong phần đã sắp xếp.

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Trong Sắp xếp chọn giảm dần trên danh sách `[60, 20, 40, 10, 50]`, sau khi kết thúc vòng lặp ngoài thứ ba (xử lý vị trí thứ ba, tức chỉ số 2), danh sách sẽ có trạng thái như thế nào?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Giả sử bạn đang thực hiện Nhiệm vụ 1 (sắp xếp tăng dần) và nhận thấy rằng khi chạy chương trình với tệp `kho.inp` chứa một danh sách số đã được sắp xếp từ trước (ví dụ: `[10, 20, 30, 40]`), chương trình vẫn hoạt động đúng nhưng có vẻ rất nhanh. Điều này phù hợp với đặc điểm của thuật toán nào trong ba thuật toán đơn giản?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Trong ngữ cảnh đọc dữ liệu từ tệp, việc sử dụng `encoding='utf8'` khi mở tệp có ý nghĩa gì?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Khi viết hàm thực hiện một thuật toán sắp xếp (ví dụ: `InsertionSort(arr)`), việc hàm nhận vào danh sách `arr` và thực hiện thay đổi *trực tiếp* trên danh sách đó (thay vì trả về một danh sách mới đã sắp xếp) là hành vi phổ biến. Điều này trong lập trình được gọi là gì?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Tại sao trong Sắp xếp chèn tăng dần, khi dịch chuyển phần tử, ta lại gán `arr[j + 1] = arr[j]` và sau đó giảm `j` đi 1 (`j -= 1`)?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Trong Sắp xếp chọn giảm dần, giả sử vòng lặp ngoài đang ở chỉ số `i`. Vòng lặp bên trong (`for j in range(i + 1, len(arr))`) tìm `max_idx` trong đoạn `arr[i+1:]`. Điều này có ý nghĩa gì trong quá trình sắp xếp?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 03

Khi so sánh các thuật toán sắp xếp đơn giản (Nổi bọt, Chọn, Chèn) trong thực tế, yếu tố nào sau đây *ít* được coi là lợi thế đáng kể của một thuật toán này so với thuật toán khác khi xử lý các danh sách *có kích thước rất lớn*?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 04

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 04 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Khi thực hiện sắp xếp một danh sách các số nguyên dương theo thứ tự tăng dần bằng thuật toán Sắp xếp chèn (Insertion Sort), sau khi xử lý xong phần tử ở chỉ mục `i`, ta có thể đảm bảo điều gì về đoạn danh sách con từ chỉ mục 0 đến `i`?

  • A. Đoạn danh sách con từ chỉ mục 0 đến `i` chứa các phần tử nhỏ nhất trong toàn bộ danh sách.
  • B. Phần tử tại chỉ mục `i` là phần tử lớn nhất trong đoạn từ 0 đến `i`.
  • C. Đoạn danh sách con từ chỉ mục 0 đến `i` đã được sắp xếp theo đúng thứ tự yêu cầu (tăng dần).
  • D. Tất cả các phần tử từ chỉ mục `i+1` đến cuối danh sách đều lớn hơn phần tử tại chỉ mục `i`.

Câu 2: Cho danh sách `[5, 2, 8, 1, 9]` cần sắp xếp tăng dần bằng thuật toán Sắp xếp chèn. Hãy mô tả trạng thái của danh sách sau khi phần tử `1` (tại chỉ mục ban đầu là 3) đã được chèn vào đúng vị trí trong phần đã sắp xếp.

  • A. `[1, 2, 5, 8, 9]`
  • B. `[1, 5, 2, 8, 9]`
  • C. `[2, 5, 8, 1, 9]`
  • D. `[5, 2, 8, 1, 9]`

Câu 3: Một cửa hàng cần sắp xếp danh sách các sản phẩm dựa trên số lượng tồn kho từ thấp đến cao. Danh sách ban đầu có 100 sản phẩm, nhưng được bổ sung liên tục từng đợt nhỏ (khoảng 5-10 sản phẩm mỗi lần). Thuật toán sắp xếp nào sau đây có thể là lựa chọn hiệu quả nhất để duy trì danh sách đã sắp xếp khi các sản phẩm mới được thêm vào theo từng đợt nhỏ?

  • A. Thuật toán Sắp xếp nổi bọt (Bubble Sort)
  • B. Thuật toán Sắp xếp chọn (Selection Sort)
  • C. Thuật toán Sắp xếp chèn (Insertion Sort)
  • D. Bất kỳ thuật toán nào cũng cho hiệu quả tương đương.

Câu 4: Trong thuật toán Sắp xếp chọn (Selection Sort) để sắp xếp một danh sách gồm N phần tử theo thứ tự giảm dần, ở mỗi bước lặp thứ `i` (với `i` bắt đầu từ 0), thuật toán sẽ tìm kiếm phần tử có giá trị lớn nhất trong đoạn danh sách con nào để đưa về vị trí thứ `i`?

  • A. Đoạn danh sách con từ chỉ mục 0 đến `i`.
  • B. Toàn bộ danh sách ban đầu.
  • C. Đoạn danh sách con từ chỉ mục `i+1` đến cuối danh sách.
  • D. Đoạn danh sách con từ chỉ mục `i` đến cuối danh sách.

Câu 5: Cho danh sách `[7, 4, 9, 2, 5]` cần sắp xếp tăng dần bằng thuật toán Sắp xếp chọn. Hãy cho biết trạng thái của danh sách sau khi hoàn thành bước tìm kiếm và đổi chỗ cho vị trí đầu tiên (chỉ mục 0).

  • A. `[7, 4, 9, 2, 5]`
  • B. `[2, 4, 9, 7, 5]`
  • C. `[4, 7, 9, 2, 5]`
  • D. `[2, 4, 5, 7, 9]`

Câu 6: Khi làm việc với tệp dữ liệu trong Python để đọc danh sách số liệu cần sắp xếp (ví dụ từ tệp `data.txt`), dòng lệnh `with open("data.txt", "r", encoding="utf8") as file:` có ý nghĩa và lợi ích gì?

  • A. Mở tệp `data.txt` để đọc (`"r"`), sử dụng bộ mã hóa `utf8`, và đảm bảo tệp sẽ tự động đóng sau khi hoàn thành.
  • B. Mở tệp `data.txt` để ghi (`"r"`), sử dụng bộ mã hóa `utf8`, và giữ tệp mở cho đến khi chương trình kết thúc.
  • C. Tạo một tệp mới tên là `data.txt` và ghi dữ liệu vào đó.
  • D. Chỉ mở tệp nếu nó đã tồn tại và có thể đọc được.

Câu 7: Giả sử bạn đã đọc các dòng từ tệp vào một danh sách các chuỗi (strings), và mỗi chuỗi là một số nguyên. Để chuyển danh sách các chuỗi này thành danh sách các số nguyên để có thể sắp xếp bằng thuật toán số học, bạn sẽ thường sử dụng thao tác nào trên mỗi phần tử chuỗi?

  • A. Sử dụng phương thức `.split()`.
  • B. Sử dụng hàm `int()` hoặc `float()`.
  • C. Sử dụng phương thức `.strip()`.
  • D. Sử dụng toán tử `+`.

Câu 8: Bạn được yêu cầu sắp xếp một danh sách điểm thi của học sinh theo thứ tự giảm dần. Danh sách này chứa 200 điểm. Thuật toán Sắp xếp nổi bọt (Bubble Sort) có phải là lựa chọn tối ưu về mặt hiệu suất trong trường hợp này không? Tại sao?

  • A. Có, vì thuật toán Nổi bọt rất dễ cài đặt và hiểu.
  • B. Có, vì 200 phần tử là kích thước nhỏ, Nổi bọt vẫn hiệu quả.
  • C. Không, vì Nổi bọt kém hiệu quả hơn các thuật toán khác như Sắp xếp chọn hoặc Sắp xếp chèn với kích thước dữ liệu 200.
  • D. Không, vì Nổi bọt chỉ dùng để sắp xếp tăng dần.

Câu 9: Phân tích đoạn mã giả sau thực hiện chức năng gì trong một thuật toán sắp xếp: `temp = list[j]; list[j] = list[j+1]; list[j+1] = temp;`

  • A. Hoán đổi giá trị của hai phần tử tại chỉ mục `j` và `j+1`.
  • B. Sao chép phần tử tại chỉ mục `j+1` sang chỉ mục `j`.
  • C. Xóa phần tử tại chỉ mục `j` khỏi danh sách.
  • D. Chèn một phần tử mới vào giữa chỉ mục `j` và `j+1`.

Câu 10: Trong thuật toán Sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần, khi xét một phần tử `current_value` (tại chỉ mục `i`), các phần tử trong đoạn đã sắp xếp (từ 0 đến `i-1`) sẽ được dịch chuyển sang phải. Điều kiện để một phần tử `list[j]` (trong đoạn đã sắp xếp, với `j < i`) bị dịch chuyển sang phải là gì?

  • A. `list[j]` nhỏ hơn hoặc bằng `current_value`.
  • B. `list[j]` bằng `current_value`.
  • C. `list[j]` nhỏ hơn `current_value`.
  • D. `list[j]` lớn hơn `current_value`.

Câu 11: Bạn có một danh sách 5000 mã sản phẩm cần sắp xếp theo thứ tự ABC. Hiệu suất là yếu tố quan trọng. Dựa trên kiến thức về các thuật toán sắp xếp đơn giản, thuật toán nào trong Bài 22 (Sắp xếp chèn, Sắp xếp chọn, Nổi bọt) có khả năng kém hiệu quả nhất cho bài toán này với kích thước dữ liệu lớn?

  • A. Thuật toán Sắp xếp nổi bọt (Bubble Sort)
  • B. Thuật toán Sắp xếp chọn (Selection Sort)
  • C. Thuật toán Sắp xếp chèn (Insertion Sort)
  • D. Cả ba thuật toán đều có hiệu suất tương đương nhau với 5000 phần tử.

Câu 12: Khi đọc dữ liệu từ tệp, mỗi dòng thường kết thúc bằng ký tự xuống dòng (`n`). Nếu mỗi dòng chỉ chứa một số, thao tác nào sau đây là cần thiết trước khi chuyển chuỗi số đó thành số nguyên bằng `int()`?

  • A. Sử dụng phương thức `.split()`,
  • B. Sử dụng phương thức `.upper()`,
  • C. Sử dụng toán tử `+`,
  • D. Sử dụng phương thức `.strip()`.

Câu 13: Một giáo viên muốn xếp thứ tự học sinh dựa trên điểm trung bình từ cao xuống thấp. Thay vì sắp xếp toàn bộ danh sách, cô giáo chỉ cần tìm ra 5 học sinh có điểm cao nhất. Mặc dù Sắp xếp chọn có thể làm được điều này bằng cách chỉ chạy 5 bước lặp đầu tiên, nhưng có một thuật toán sắp xếp đơn giản khác mà ý tưởng cốt lõi của nó cũng liên quan đến việc tìm kiếm phần tử lớn nhất/nhỏ nhất và đưa về đúng vị trí. Đó là thuật toán nào?

  • A. Thuật toán Sắp xếp nổi bọt (Bubble Sort)
  • B. Thuật toán Sắp xếp chọn (Selection Sort)
  • C. Thuật toán Sắp xếp chèn (Insertion Sort)
  • D. Không có thuật toán nào trong Bài 22 phù hợp.

Câu 14: Khi cài đặt thuật toán Sắp xếp chèn (Insertion Sort) bằng Python, vòng lặp bên ngoài thường duyệt qua các phần tử từ chỉ mục 1 đến cuối danh sách. Mục đích của vòng lặp này là gì?

  • A. Để tìm phần tử nhỏ nhất trong toàn bộ danh sách.
  • B. Để so sánh và hoán đổi các phần tử liền kề.
  • C. Để lần lượt chọn từng phần tử chưa sắp xếp và chèn vào đúng vị trí trong phần đã sắp xếp.
  • D. Để xác định ranh giới giữa phần đã sắp xếp và phần chưa sắp xếp.

Câu 15: Xem xét đoạn mã Python sau (giả định `data_list` là danh sách các số nguyên):
```python
def process_data(data_list):
n = len(data_list)
for i in range(n - 1):
min_idx = i
for j in range(i + 1, n):
if data_list[j] < data_list[min_idx]: min_idx = j data_list[i], data_list[min_idx] = data_list[min_idx], data_list[i] return data_list ``` Đoạn mã này đang thực hiện thuật toán sắp xếp nào?

  • A. Thuật toán Sắp xếp nổi bọt (Bubble Sort)
  • B. Thuật toán Sắp xếp chọn (Selection Sort)
  • C. Thuật toán Sắp xếp chèn (Insertion Sort)
  • D. Thuật toán tìm kiếm nhị phân (Binary Search)

Câu 16: Sự khác biệt cơ bản trong cách tiếp cận giữa thuật toán Sắp xếp chọn (Selection Sort) và Sắp xếp chèn (Insertion Sort) là gì?

  • A. Sắp xếp chọn tìm phần tử lớn nhất/nhỏ nhất và đổi chỗ, trong khi Sắp xếp chèn lấy phần tử và chèn vào vị trí đúng bằng cách dịch chuyển.
  • B. Sắp xếp chọn hiệu quả với danh sách gần sắp xếp, còn Sắp xếp chèn thì không.
  • C. Sắp xếp chọn sử dụng nhiều bộ nhớ hơn Sắp xếp chèn.
  • D. Sắp xếp chọn chỉ sắp xếp tăng dần, còn Sắp xếp chèn có thể sắp xếp cả tăng và giảm.

Câu 17: Trong một bài toán thực tế, bạn cần sắp xếp một danh sách các đối tượng phức tạp (ví dụ: thông tin sinh viên bao gồm tên, điểm, mã số) dựa trên một tiêu chí cụ thể (ví dụ: điểm trung bình). Khi cài đặt các thuật toán sắp xếp đơn giản như Sắp xếp chèn hoặc Sắp xếp chọn cho trường hợp này, điều chỉnh chính cần thực hiện là gì?

  • A. Thay đổi cách hoán đổi các đối tượng.
  • B. Thay đổi cấu trúc vòng lặp của thuật toán.
  • C. Thay đổi tiêu chí so sánh giữa các phần tử (so sánh thuộc tính cụ thể của đối tượng).
  • D. Chỉ cần áp dụng trực tiếp thuật toán gốc mà không cần thay đổi gì.

Câu 18: Tại sao trong thực tế, việc đọc dữ liệu từ tệp là một bước quan trọng trước khi thực hiện sắp xếp?

  • A. Việc đọc tệp giúp thuật toán sắp xếp chạy nhanh hơn.
  • B. Tất cả các thuật toán sắp xếp đều yêu cầu dữ liệu phải được đọc từ tệp.
  • C. Đọc dữ liệu từ tệp giúp tự động chuyển đổi kiểu dữ liệu.
  • D. Dữ liệu trong các bài toán thực tế thường được lưu trữ trong tệp và cần được nạp vào chương trình để xử lý.

Câu 19: Khi sắp xếp một danh sách theo thứ tự giảm dần bằng thuật toán Sắp xếp chèn (Insertion Sort), điều kiện để dịch chuyển các phần tử trong đoạn đã sắp xếp sang phải khi chèn phần tử `current_value` là gì?

  • A. Phần tử trong đoạn đã sắp xếp nhỏ hơn `current_value`.
  • B. Phần tử trong đoạn đã sắp xếp lớn hơn `current_value`.
  • C. Phần tử trong đoạn đã sắp xếp bằng `current_value`.
  • D. Không có phần tử nào cần dịch chuyển.

Câu 20: Trong thuật toán Sắp xếp chọn (Selection Sort) để sắp xếp tăng dần, sau mỗi bước lặp hoàn thành (sau khi tìm min và đổi chỗ), phần tử tại vị trí hiện tại của vòng lặp ngoài (`i`) có đặc điểm gì?

  • A. Là phần tử lớn nhất trong toàn bộ danh sách.
  • B. Đã nằm đúng vị trí cuối cùng của nó trong danh sách đã sắp xếp.
  • C. Cần được so sánh với phần tử tiếp theo.
  • D. Là phần tử lớn nhất trong phần chưa sắp xếp còn lại.

Câu 21: Xem xét đoạn mã Python để đọc dữ liệu từ tệp "scores.txt" và lưu vào danh sách `scores_list`:
```python
scores_list = []
with open("scores.txt", "r") as file:
for line in file:
# Điền vào chỗ trống
```
Để chuyển mỗi dòng thành số nguyên và thêm vào danh sách, chỗ trống cần điền là gì?

  • A. `scores_list.append(line)`
  • B. `scores_list.append(float(line.strip()))`
  • C. `scores_list.append(int(line.strip()))`
  • D. `scores_list.append(line.split())`

Câu 22: Trong bối cảnh thực hành sắp xếp, việc hiển thị danh sách trước và sau khi sắp xếp có mục đích gì?

  • A. Để kiểm tra dữ liệu ban đầu và xác nhận kết quả sau khi sắp xếp.
  • B. Để tăng tốc độ thực thi của chương trình.
  • C. Để giảm số lượng phép so sánh trong thuật toán.
  • D. Để thay đổi kiểu dữ liệu của các phần tử.

Câu 23: Khi cần sắp xếp một danh sách các chuỗi (ví dụ: tên học sinh) theo thứ tự bảng chữ cái, các thuật toán sắp xếp đơn giản (chèn, chọn, nổi bọt) có thể áp dụng trực tiếp được không? Tại sao?

  • A. Không, vì các thuật toán này chỉ hoạt động với số.
  • B. Không, cần phải chuyển đổi chuỗi thành số trước khi sắp xếp.
  • C. Có, nhưng cần viết lại toàn bộ logic so sánh cho chuỗi.
  • D. Có, vì các ngôn ngữ lập trình hỗ trợ so sánh chuỗi theo thứ tự từ điển.

Câu 24: Giả sử bạn có một tệp chứa danh sách các cặp dữ liệu (ví dụ: tên sản phẩm và giá). Mỗi dòng trong tệp có định dạng "Tên sản phẩm,Giá". Để sắp xếp danh sách này theo giá tăng dần bằng các thuật toán đã học, bạn cần xử lý dữ liệu sau khi đọc từ tệp như thế nào?

  • A. Chỉ cần đọc từng dòng và sắp xếp trực tiếp các chuỗi.
  • B. Đọc từng dòng, tách chuỗi thành tên và giá, chuyển giá sang kiểu số, lưu trữ cặp này và sắp xếp dựa trên giá trị giá.
  • C. Đọc toàn bộ tệp thành một chuỗi lớn và sắp xếp chuỗi đó.
  • D. Chỉ cần đọc giá trị giá và bỏ qua tên sản phẩm.

Câu 25: Thuật toán Sắp xếp chèn (Insertion Sort) có một ưu điểm đáng chú ý so với Sắp xếp chọn và Nổi bọt khi làm việc với loại dữ liệu nào?

  • A. Danh sách có kích thước rất lớn.
  • B. Danh sách chứa các phần tử trùng lặp.
  • C. Danh sách đã gần như được sắp xếp.
  • D. Danh sách chứa các số âm.

Câu 26: Khi cài đặt thuật toán Sắp xếp chọn (Selection Sort) để sắp xếp giảm dần, vòng lặp bên trong tìm chỉ mục của phần tử lớn nhất. Sau khi tìm được, phần tử này sẽ được đổi chỗ với phần tử tại chỉ mục nào của vòng lặp bên ngoài?

  • A. Chỉ mục `i` của vòng lặp bên ngoài.
  • B. Chỉ mục cuối cùng của danh sách.
  • C. Chỉ mục đầu tiên của danh sách (chỉ mục 0).
  • D. Chỉ mục của phần tử nhỏ nhất trong đoạn còn lại.

Câu 27: Bạn có một danh sách điểm `[8.5, 7.0, 9.2, 6.5, 8.0]` cần sắp xếp giảm dần. Sử dụng thuật toán Sắp xếp chèn (Insertion Sort), hãy cho biết trạng thái của danh sách sau khi phần tử `6.5` (ở vị trí ban đầu là 3) đã được chèn vào đúng vị trí trong phần đã sắp xếp.

  • A. `[8.5, 7.0, 6.5, 9.2, 8.0]`
  • B. `[9.2, 8.5, 7.0, 6.5, 8.0]`
  • C. `[6.5, 8.5, 7.0, 9.2, 8.0]`
  • D. `[9.2, 8.5, 7.0, 8.0, 6.5]`

Câu 28: Khi đọc dữ liệu số từ tệp, tại sao cần sử dụng `try-except` block khi chuyển đổi chuỗi thành số (`int()` hoặc `float()`)?

  • A. Để xử lý các trường hợp dòng dữ liệu không thể chuyển đổi thành số, tránh gây lỗi dừng chương trình.
  • B. Để tăng tốc độ đọc tệp và chuyển đổi dữ liệu.
  • C. Để tự động loại bỏ các ký tự xuống dòng.
  • D. Để đảm bảo tệp được đóng sau khi đọc xong.

Câu 29: Trong thuật toán Sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần, vòng lặp bên trong (để tìm vị trí chèn và dịch chuyển) thường lặp như thế nào?

  • A. Từ đầu danh sách đến cuối danh sách.
  • B. Từ vị trí trước phần tử đang xét (`i-1`) lùi về đầu danh sách.
  • C. Từ vị trí sau phần tử đang xét (`i+1`) đến cuối danh sách.
  • D. Từ đầu danh sách đến vị trí của phần tử đang xét (`i`).

Câu 30: Bạn cần viết một chương trình Python để đọc danh sách các mức lương từ tệp "salaries.txt", sắp xếp chúng theo thứ tự tăng dần và in ra màn hình. Cấu trúc chính của chương trình sẽ bao gồm các bước nào?

  • A. Đọc dữ liệu từ tệp -> In dữ liệu ra màn hình -> Sắp xếp dữ liệu.
  • B. Sắp xếp dữ liệu -> Đọc dữ liệu từ tệp -> In dữ liệu ra màn hình.
  • C. Đọc dữ liệu từ tệp -> Sắp xếp dữ liệu -> Ghi dữ liệu đã sắp xếp vào tệp mới.
  • D. Đọc dữ liệu từ tệp và chuyển đổi kiểu dữ liệu -> Sắp xếp danh sách -> In danh sách đã sắp xếp.

Câu 31: Trong thuật toán Sắp xếp chọn (Selection Sort) để sắp xếp tăng dần, sau khi hoàn thành bước lặp thứ `k` (với `k` là chỉ mục của vòng lặp ngoài, bắt đầu từ 0), ta có thể nói gì về `k+1` phần tử đầu tiên của danh sách?

  • A. `k+1` phần tử đầu tiên là các phần tử lớn nhất trong danh sách.
  • B. `k+1` phần tử đầu tiên đã được sắp xếp nhưng chưa chắc là các phần tử nhỏ nhất.
  • C. `k+1` phần tử đầu tiên đã được sắp xếp và là `k+1` phần tử nhỏ nhất trong danh sách.
  • D. `k+1` phần tử đầu tiên vẫn ở vị trí ngẫu nhiên.

Câu 32: Khi sử dụng thuật toán Sắp xếp chèn (Insertion Sort) để sắp xếp một danh sách gồm 1000 phần tử đã được sắp xếp theo thứ tự ngược lại (giảm dần, nhưng cần sắp xếp tăng dần), hiệu suất của thuật toán sẽ như thế nào so với trường hợp danh sách ngẫu nhiên?

  • A. Kém hiệu quả hơn, vì mỗi phần tử cần dịch chuyển qua nhiều vị trí.
  • B. Hiệu quả hơn, vì thuật toán tận dụng được việc dữ liệu đã có thứ tự.
  • C. Hiệu suất tương đương với trường hợp danh sách đã sắp xếp tăng dần.
  • D. Không thể áp dụng thuật toán Sắp xếp chèn cho danh sách sắp xếp ngược.

Câu 33: Một chương trình đọc danh sách tên học sinh và điểm từ tệp, sau đó sắp xếp danh sách này theo tên học sinh tăng dần. Sau khi sắp xếp, chương trình cần in ra tên và điểm của từng học sinh theo thứ tự mới. Thao tác nào sau đây là cần thiết để hiển thị kết quả đúng?

  • A. Chỉ in ra danh sách tên học sinh.
  • B. In ra danh sách điểm học sinh theo thứ tự ban đầu.
  • C. Sắp xếp lại danh sách theo điểm trước khi in.
  • D. Duyệt qua danh sách đã sắp xếp và in thông tin (tên và điểm) của từng học sinh.

Câu 34: Xem xét đoạn mã Python sau thực hiện một phần của thuật toán sắp xếp:
```python
def sort_part(data_list):
n = len(data_list)
for i in range(1, n):
current_value = data_list[i]
j = i - 1
while j >= 0 and data_list[j] > current_value:
data_list[j + 1] = data_list[j]
j -= 1
data_list[j + 1] = current_value
return data_list
```
Đoạn mã này đang thực hiện thuật toán sắp xếp nào?

  • A. Thuật toán Sắp xếp nổi bọt (Bubble Sort)
  • B. Thuật toán Sắp xếp chọn (Selection Sort)
  • C. Thuật toán Sắp xếp chèn (Insertion Sort)
  • D. Thuật toán tìm kiếm tuần tự (Linear Search)

Câu 35: Giả sử bạn đã đọc một danh sách các số nguyên từ tệp. Bạn muốn sắp xếp danh sách này theo thứ tự giảm dần bằng thuật toán Sắp xếp chọn. Sau khi tìm được chỉ mục của phần tử lớn nhất trong đoạn chưa sắp xếp (`max_idx`), bạn cần đổi chỗ phần tử tại `max_idx` với phần tử tại chỉ mục nào để thực hiện sắp xếp giảm dần?

  • A. Chỉ mục hiện tại của vòng lặp bên ngoài (ví dụ: `i`).
  • B. Chỉ mục cuối cùng của danh sách.
  • C. Chỉ mục đầu tiên của danh sách (chỉ mục 0).
  • D. Chỉ mục của phần tử nhỏ nhất trong đoạn chưa sắp xếp.

Câu 36: Trong bài toán thực hành sắp xếp, việc lựa chọn thuật toán sắp xếp nào phù hợp nhất phụ thuộc chủ yếu vào yếu tố nào?

  • A. Màu sắc của dữ liệu.
  • B. Kích thước và đặc điểm của dữ liệu cần sắp xếp.
  • C. Tên của tệp chứa dữ liệu.
  • D. Kiểu dữ liệu của các phần tử (luôn giống nhau).

Câu 37: Để sắp xếp một danh sách các đối tượng (ví dụ: đối tượng `SanPham` có thuộc tính `ten` và `gia`) theo thuộc tính `gia` tăng dần bằng thuật toán Sắp xếp chèn, khi so sánh hai đối tượng `sp1` và `sp2`, bạn cần so sánh thuộc tính nào?

  • A. So sánh `sp1.gia` với `sp2.gia`.
  • B. So sánh `sp1.ten` với `sp2.ten`.
  • C. So sánh toàn bộ đối tượng `sp1` với `sp2`.
  • D. Không cần thực hiện so sánh.

Câu 38: Trong thuật toán Sắp xếp chèn (Insertion Sort), quá trình "chèn" một phần tử vào đoạn đã sắp xếp thực chất là việc thực hiện những thao tác nào?

  • A. Chỉ thực hiện các phép hoán đổi giữa các phần tử liền kề.
  • B. Thực hiện các phép so sánh để tìm vị trí và dịch chuyển các phần tử khác để tạo chỗ trống.
  • C. Chỉ thực hiện các phép so sánh mà không dịch chuyển hay hoán đổi.
  • D. Xóa phần tử khỏi vị trí cũ và thêm nó vào vị trí mới.

Câu 39: Bạn có một danh sách 100 số nguyên cần sắp xếp tăng dần. Bạn quyết định sử dụng thuật toán Sắp xếp chọn. Sau khi thuật toán hoàn thành 50 bước lặp đầu tiên (tức là đã xử lý 50 vị trí đầu tiên từ chỉ mục 0 đến 49), bạn có thể nói gì về 50 phần tử đầu tiên của danh sách?

  • A. 50 phần tử đầu tiên là 50 phần tử lớn nhất trong danh sách.
  • B. 50 phần tử đầu tiên đã được sắp xếp, nhưng chưa chắc là 50 phần tử nhỏ nhất.
  • C. 50 phần tử đầu tiên đã được sắp xếp và là 50 phần tử nhỏ nhất trong danh sách.
  • D. 50 phần tử đầu tiên vẫn chưa được sắp xếp.

Câu 40: Trong ngữ cảnh đọc dữ liệu số từ tệp, nếu tệp chứa các dòng trống hoặc dòng chỉ chứa khoảng trắng, việc sử dụng phương thức `.strip()` trước khi chuyển đổi sang số (`int` hoặc `float`) có lợi ích gì?

  • A. Giúp phát hiện và xử lý (hoặc bỏ qua) các dòng trống hoặc dòng chỉ chứa khoảng trắng để tránh lỗi khi chuyển đổi kiểu dữ liệu.
  • B. Giúp chuyển đổi các dòng chứa văn bản thành số 0.
  • C. Giúp tự động điền giá trị mặc định cho các dòng bị thiếu dữ liệu.
  • D. Không có lợi ích gì, `int()` và `float()` tự động xử lý dòng trống.

Câu 41: Điểm khác biệt chính giữa thuật toán Sắp xếp nổi bọt (Bubble Sort) và Sắp xếp chèn (Insertion Sort) nằm ở cách chúng di chuyển các phần tử về vị trí đúng. Nổi bọt sử dụng _________, trong khi Sắp xếp chèn sử dụng _________.

  • A. dịch chuyển; hoán đổi
  • B. hoán đổi; dịch chuyển
  • C. tìm kiếm; chọn
  • D. chọn; tìm kiếm

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Câu 1: Khi thực hiện sắp xếp một danh sách các số nguyên dương theo thứ tự tăng dần bằng thuật toán Sắp xếp chèn (Insertion Sort), sau khi xử lý xong phần tử ở chỉ mục `i`, ta có thể đảm bảo điều gì về đoạn danh sách con từ chỉ mục 0 đến `i`?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Câu 2: Cho danh sách `[5, 2, 8, 1, 9]` cần sắp xếp tăng dần bằng thuật toán Sắp xếp chèn. Hãy mô tả trạng thái của danh sách sau khi phần tử `1` (tại chỉ mục ban đầu là 3) đã được chèn vào đúng vị trí trong phần đã sắp xếp.

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Một cửa hàng cần sắp xếp danh sách các sản phẩm dựa trên số lượng tồn kho từ thấp đến cao. Danh sách ban đầu có 100 sản phẩm, nhưng được bổ sung liên tục từng đợt nhỏ (khoảng 5-10 sản phẩm mỗi lần). Thuật toán sắp xếp nào sau đây có thể là lựa chọn hiệu quả nhất để duy trì danh sách đã sắp xếp khi các sản phẩm mới được thêm vào theo từng đợt nhỏ?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Trong thuật toán Sắp xếp chọn (Selection Sort) để sắp xếp một danh sách gồm N phần tử theo thứ tự giảm dần, ở mỗi bước lặp thứ `i` (với `i` bắt đầu từ 0), thuật toán sẽ tìm kiếm phần tử có giá trị lớn nhất trong đoạn danh sách con nào để đưa về vị trí thứ `i`?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Cho danh sách `[7, 4, 9, 2, 5]` cần sắp xếp tăng dần bằng thuật toán Sắp xếp chọn. Hãy cho biết trạng thái của danh sách sau khi hoàn thành bước tìm kiếm và đổi chỗ cho vị trí đầu tiên (chỉ mục 0).

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Khi làm việc với tệp dữ liệu trong Python để đọc danh sách số liệu cần sắp xếp (ví dụ từ tệp `data.txt`), dòng lệnh `with open('data.txt', 'r', encoding='utf8') as file:` có ý nghĩa và lợi ích gì?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Giả sử bạn đã đọc các dòng từ tệp vào một danh sách các chuỗi (strings), và mỗi chuỗi là một số nguyên. Để chuyển danh sách các chuỗi này thành danh sách các số nguyên để có thể sắp xếp bằng thuật toán số học, bạn sẽ thường sử dụng thao tác nào trên mỗi phần tử chuỗi?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Bạn được yêu cầu sắp xếp một danh sách điểm thi của học sinh theo thứ tự giảm dần. Danh sách này chứa 200 điểm. Thuật toán Sắp xếp nổi bọt (Bubble Sort) có phải là lựa chọn tối ưu về mặt hiệu suất trong trường hợp này không? Tại sao?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Phân tích đoạn mã giả sau thực hiện chức năng gì trong một thuật toán sắp xếp: `temp = list[j]; list[j] = list[j+1]; list[j+1] = temp;`

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Trong thuật toán Sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần, khi xét một phần tử `current_value` (tại chỉ mục `i`), các phần tử trong đoạn đã sắp xếp (từ 0 đến `i-1`) sẽ được dịch chuyển sang phải. Điều kiện để một phần tử `list[j]` (trong đoạn đã sắp xếp, với `j < i`) bị dịch chuyển sang phải là gì?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Bạn có một danh sách 5000 mã sản phẩm cần sắp xếp theo thứ tự ABC. Hiệu suất là yếu tố quan trọng. Dựa trên kiến thức về các thuật toán sắp xếp đơn giản, thuật toán nào trong Bài 22 (Sắp xếp chèn, Sắp xếp chọn, Nổi bọt) có khả năng kém hiệu quả nhất cho bài toán này với kích thước dữ liệu lớn?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Khi đọc dữ liệu từ tệp, mỗi dòng thường kết thúc bằng ký tự xuống dòng (`n`). Nếu mỗi dòng chỉ chứa một số, thao tác nào sau đây là cần thiết trước khi chuyển chuỗi số đó thành số nguyên bằng `int()`?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Một giáo viên muốn xếp thứ tự học sinh dựa trên điểm trung bình từ cao xuống thấp. Thay vì sắp xếp toàn bộ danh sách, cô giáo chỉ cần tìm ra 5 học sinh có điểm cao nhất. Mặc dù Sắp xếp chọn có thể làm được điều này bằng cách chỉ chạy 5 bước lặp đầu tiên, nhưng có một thuật toán sắp xếp đơn giản khác mà ý tưởng cốt lõi của nó cũng liên quan đến việc tìm kiếm phần tử lớn nhất/nhỏ nhất và đưa về đúng vị trí. Đó là thuật toán nào?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Khi cài đặt thuật toán Sắp xếp chèn (Insertion Sort) bằng Python, vòng lặp bên ngoài thường duyệt qua các phần tử từ chỉ mục 1 đến cuối danh sách. Mục đích của vòng lặp này là gì?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Xem xét đoạn mã Python sau (giả định `data_list` là danh sách các số nguyên):
```python
def process_data(data_list):
n = len(data_list)
for i in range(n - 1):
min_idx = i
for j in range(i + 1, n):
if data_list[j] < data_list[min_idx]: min_idx = j data_list[i], data_list[min_idx] = data_list[min_idx], data_list[i] return data_list ``` Đoạn mã này đang thực hiện thuật toán sắp xếp nào?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Sự khác biệt cơ bản trong cách tiếp cận giữa thuật toán Sắp xếp chọn (Selection Sort) và Sắp xếp chèn (Insertion Sort) là gì?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Trong một bài toán thực tế, bạn cần sắp xếp một danh sách các đối tượng phức tạp (ví dụ: thông tin sinh viên bao gồm tên, điểm, mã số) dựa trên một tiêu chí cụ thể (ví dụ: điểm trung bình). Khi cài đặt các thuật toán sắp xếp đơn giản như Sắp xếp chèn hoặc Sắp xếp chọn cho trường hợp này, điều chỉnh chính cần thực hiện là gì?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Tại sao trong thực tế, việc đọc dữ liệu từ tệp là một bước quan trọng trước khi thực hiện sắp xếp?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Khi sắp xếp một danh sách theo thứ tự giảm dần bằng thuật toán Sắp xếp chèn (Insertion Sort), điều kiện để dịch chuyển các phần tử trong đoạn đã sắp xếp sang phải khi chèn phần tử `current_value` là gì?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Trong thuật toán Sắp xếp chọn (Selection Sort) để sắp xếp tăng dần, sau mỗi bước lặp hoàn thành (sau khi tìm min và đổi chỗ), phần tử tại vị trí hiện tại của vòng lặp ngoài (`i`) có đặc điểm gì?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Xem xét đoạn mã Python để đọc dữ liệu từ tệp 'scores.txt' và lưu vào danh sách `scores_list`:
```python
scores_list = []
with open('scores.txt', 'r') as file:
for line in file:
# Điền vào chỗ trống
```
Để chuyển mỗi dòng thành số nguyên và thêm vào danh sách, chỗ trống cần điền là gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Trong bối cảnh thực hành sắp xếp, việc hiển thị danh sách trước và sau khi sắp xếp có mục đích gì?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Khi cần sắp xếp một danh sách các chuỗi (ví dụ: tên học sinh) theo thứ tự bảng chữ cái, các thuật toán sắp xếp đơn giản (chèn, chọn, nổi bọt) có thể áp dụng trực tiếp được không? Tại sao?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Giả sử bạn có một tệp chứa danh sách các cặp dữ liệu (ví dụ: tên sản phẩm và giá). Mỗi dòng trong tệp có định dạng 'Tên sản phẩm,Giá'. Để sắp xếp danh sách này theo giá tăng dần bằng các thuật toán đã học, bạn cần xử lý dữ liệu sau khi đọc từ tệp như thế nào?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Thuật toán Sắp xếp chèn (Insertion Sort) có một ưu điểm đáng chú ý so với Sắp xếp chọn và Nổi bọt khi làm việc với loại dữ liệu nào?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Khi cài đặt thuật toán Sắp xếp chọn (Selection Sort) để sắp xếp giảm dần, vòng lặp bên trong tìm chỉ mục của phần tử lớn nhất. Sau khi tìm được, phần tử này sẽ được đổi chỗ với phần tử tại chỉ mục nào của vòng lặp bên ngoài?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Bạn có một danh sách điểm `[8.5, 7.0, 9.2, 6.5, 8.0]` cần sắp xếp giảm dần. Sử dụng thuật toán Sắp xếp chèn (Insertion Sort), hãy cho biết trạng thái của danh sách sau khi phần tử `6.5` (ở vị trí ban đầu là 3) đã được chèn vào đúng vị trí trong phần đã sắp xếp.

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Khi đọc dữ liệu số từ tệp, tại sao cần sử dụng `try-except` block khi chuyển đổi chuỗi thành số (`int()` hoặc `float()`)?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Trong thuật toán Sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần, vòng lặp bên trong (để tìm vị trí chèn và dịch chuyển) thường lặp như thế nào?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 04

Bạn cần viết một chương trình Python để đọc danh sách các mức lương từ tệp 'salaries.txt', sắp xếp chúng theo thứ tự tăng dần và in ra màn hình. Cấu trúc chính của chương trình sẽ bao gồm các bước nào?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 05

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 05 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong bài toán thực hành sắp xếp dữ liệu từ tệp, bước đầu tiên và quan trọng nhất thường là gì trước khi áp dụng thuật toán sắp xếp?

  • A. Viết mã nguồn cho thuật toán sắp xếp.
  • B. Hiển thị dữ liệu ra màn hình.
  • C. Đọc dữ liệu từ tệp và lưu vào cấu trúc dữ liệu phù hợp (ví dụ: danh sách).
  • D. Xác định thuật toán sắp xếp hiệu quả nhất.

Câu 2: Giả sử bạn cần sắp xếp một danh sách điểm của học sinh được đọc từ tệp văn bản theo thứ tự giảm dần. Thuật toán sắp xếp chọn (Selection Sort) hoạt động như thế nào để đạt được mục tiêu này?

  • A. Ở mỗi bước lặp, tìm phần tử lớn nhất trong phần còn lại của danh sách chưa được sắp xếp và đổi chỗ nó với phần tử ở vị trí đầu tiên của phần chưa sắp xếp đó.
  • B. So sánh hai phần tử liền kề và đổi chỗ nếu chúng không đúng thứ tự giảm dần, lặp lại cho đến khi danh sách được sắp xếp.
  • C. Lấy từng phần tử từ danh sách chưa sắp xếp và chèn nó vào đúng vị trí trong phần danh sách đã sắp xếp.
  • D. Chia danh sách thành hai nửa, sắp xếp từng nửa rồi trộn lại.

Câu 3: Trong thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp một danh sách số lượng mặt hàng theo thứ tự tăng dần, tại sao cần dịch chuyển các phần tử lớn hơn giá trị đang xét sang phải?

  • A. Để đưa phần tử lớn nhất về cuối danh sách.
  • B. Để giảm số lần so sánh giữa các phần tử.
  • C. Để tạo khoảng trống cho phần tử nhỏ nhất được chèn vào đầu danh sách.
  • D. Để tạo ra vị trí trống tại đúng chỗ cần chèn phần tử đang xét vào phần danh sách đã sắp xếp, đảm bảo thứ tự tăng dần.

Câu 4: Bạn có một tệp văn bản "diem.txt" chứa điểm trung bình của mỗi học sinh trên một dòng riêng biệt. Đoạn mã Python nào sau đây đọc dữ liệu từ tệp này và lưu vào một danh sách?

  • A. ```python
    diem_ds = []
    with open("diem.txt", "w") as f:
    for line in f:
    diem_ds.append(float(line))
    ```
  • B. ```python
    diem_ds = []
    with open("diem.txt", "r", encoding="utf8") as f:
    for line in f:
    diem_ds.append(float(line.strip()))
    ```
  • C. ```python
    diem_ds = []
    open("diem.txt", "r") as f:
    diem_ds = f.readlines()
    ```
  • D. ```python
    with open("diem.txt", "r") as f:
    diem_ds = readlines(f)
    ```

Câu 5: Sau khi sắp xếp danh sách số lượng mặt hàng theo thứ tự tăng dần bằng thuật toán sắp xếp chèn, ý nghĩa thực tế của việc này trong quản lý kho là gì?

  • A. Giúp tìm kiếm mặt hàng ngẫu nhiên nhanh hơn.
  • B. Giúp dễ dàng xác định mặt hàng có số lượng lớn nhất.
  • C. Giúp dễ dàng xác định các mặt hàng có số lượng ít nhất hoặc nhiều nhất để ưu tiên xử lý (ví dụ: kiểm kê, nhập thêm hàng).
  • D. Không có ý nghĩa thực tế, chỉ là bài tập lập trình.

Câu 6: Xem xét danh sách [5, 2, 8, 1, 9]. Áp dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp TĂNG DẦN. Danh sách sẽ trông như thế nào sau LẦN ĐẦU TIÊN tìm thấy phần tử nhỏ nhất và đổi chỗ về đúng vị trí?

  • A. [2, 5, 8, 1, 9]
  • B. [1, 2, 8, 5, 9]
  • C. [5, 2, 8, 1, 9]
  • D. [9, 2, 8, 1, 5]

Câu 7: Vẫn danh sách [5, 2, 8, 1, 9]. Áp dụng thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp TĂNG DẦN. Danh sách sẽ trông như thế nào sau khi phần tử SỐ 2 (giá trị 8) đã được chèn vào đúng vị trí của nó trong phần đã sắp xếp?

  • A. [2, 5, 8, 1, 9]
  • B. [1, 2, 5, 8, 9]
  • C. [5, 2, 1, 8, 9]
  • D. [2, 5, 1, 8, 9]

Câu 8: Khi làm việc với tệp dữ liệu lớn trong bài toán sắp xếp thực tế, việc đọc toàn bộ dữ liệu vào bộ nhớ (RAM) có thể gây ra vấn đề gì?

  • A. Tốn rất nhiều bộ nhớ, có thể dẫn đến tràn bộ nhớ (out of memory) hoặc làm chậm hệ thống.
  • B. Làm cho thuật toán sắp xếp chạy nhanh hơn.
  • C. Giảm thiểu số lần thao tác với tệp.
  • D. Không có vấn đề gì, đây là cách làm tiêu chuẩn.

Câu 9: Thuật toán sắp xếp nào thường được coi là hiệu quả nhất trong thực tế khi danh sách đầu vào có kích thước trung bình và đã GẦN NHƯ được sắp xếp?

  • A. Thuật toán nổi bọt (Bubble Sort).
  • B. Thuật toán sắp xếp chọn (Selection Sort).
  • C. Thuật toán sắp xếp chèn (Insertion Sort).
  • D. Tất cả đều có hiệu quả như nhau.

Câu 10: Trong bài toán sắp xếp điểm học sinh theo thứ tự giảm dần, nếu sử dụng thuật toán sắp xếp chọn, biến lưu chỉ số của phần tử cần tìm trong mỗi vòng lặp (ví dụ: `max_idx`) sẽ có mục đích gì?

  • A. Lưu giá trị của phần tử nhỏ nhất trong phần chưa sắp xếp.
  • B. Lưu chỉ số (vị trí) của phần tử có giá trị lớn nhất trong phần chưa sắp xếp.
  • C. Đếm số lượng phần tử đã được sắp xếp.
  • D. Xác định vị trí cuối cùng của danh sách.

Câu 11: Giả sử bạn có một danh sách các chuỗi cần sắp xếp theo thứ tự từ điển (ví dụ: tên sản phẩm). Thuật toán sắp xếp chèn có thể áp dụng cho kiểu dữ liệu này không và nguyên tắc so sánh sẽ như thế nào?

  • A. Có, áp dụng được. Nguyên tắc so sánh dựa trên thứ tự từ điển của các chuỗi (ví dụ: "apple" < "banana").
  • B. Không, chỉ áp dụng được cho số.
  • C. Có, áp dụng được, nhưng cần chuyển chuỗi thành số trước khi so sánh.
  • D. Chỉ áp dụng được nếu tất cả các chuỗi có độ dài bằng nhau.

Câu 12: Khi trình bày kết quả sắp xếp từ một tệp dữ liệu (ví dụ: số lượng mặt hàng), tại sao việc in danh sách đã sắp xếp ra màn hình hoặc ghi ra một tệp khác là cần thiết?

  • A. Để kiểm tra xem dữ liệu gốc có bị thay đổi không.
  • B. Để tăng tốc độ thực thi chương trình.
  • C. Để xóa dữ liệu gốc khỏi bộ nhớ.
  • D. Để người dùng hoặc hệ thống khác có thể xem và sử dụng kết quả đã được xử lý (sắp xếp).

Câu 13: Bạn có một danh sách gồm 100 phần tử. Nếu sử dụng thuật toán sắp xếp nổi bọt (Bubble Sort), điều gì xảy ra ở cuối LẦN LẶP (pass) đầu tiên?

  • A. Phần tử nhỏ nhất được đưa về vị trí đầu tiên.
  • B. Tất cả các phần tử đã được sắp xếp hoàn toàn.
  • C. Phần tử lớn nhất trong danh sách ban đầu được đưa về vị trí cuối cùng.
  • D. Danh sách vẫn ở trạng thái ban đầu.

Câu 14: Trong thuật toán sắp xếp chèn, phần "đã sắp xếp" của danh sách ban đầu là gì?

  • A. Ban đầu là phần tử đầu tiên, sau đó mở rộng dần sang phải khi các phần tử mới được chèn vào đúng vị trí.
  • B. Luôn là toàn bộ danh sách.
  • C. Là phần tử cuối cùng, sau đó mở rộng dần sang trái.
  • D. Là phần tử ở giữa danh sách.

Câu 15: Giả sử bạn đang thực hiện sắp xếp chèn một danh sách số nguyên. Bạn đang xét phần tử tại chỉ số `i`. Để chèn phần tử này vào phần danh sách đã sắp xếp trước đó (từ chỉ số 0 đến `i-1`), bạn cần so sánh nó với các phần tử nào?

  • A. Tất cả các phần tử trong danh sách gốc.
  • B. Các phần tử trong phần danh sách đã được sắp xếp (từ chỉ số `i-1` trở về 0).
  • C. Chỉ phần tử tại chỉ số `i-1`.
  • D. Các phần tử trong phần chưa sắp xếp (từ chỉ số `i+1` đến cuối).

Câu 16: Khi sắp xếp điểm trung bình học sinh theo thứ tự giảm dần bằng thuật toán sắp xếp chọn, nếu có hai học sinh có điểm trung bình bằng nhau, thứ tự tương đối của họ trong danh sách sau khi sắp xếp có được đảm bảo giữ nguyên so với danh sách ban đầu không? (Đây là tính ổn định của thuật toán)

  • A. Có, thuật toán sắp xếp chọn luôn ổn định.
  • B. Không, thuật toán sắp xếp chọn không phải là thuật toán ổn định, thứ tự tương đối của các phần tử bằng nhau có thể thay đổi.
  • C. Điều đó phụ thuộc vào cách cài đặt cụ thể.
  • D. Chỉ ổn định khi sắp xếp tăng dần.

Câu 17: Bạn cần sắp xếp một danh sách rất nhỏ (ví dụ: dưới 10 phần tử) trong một chương trình thực tế. Việc lựa chọn giữa sắp xếp nổi bọt, sắp xếp chọn hay sắp xếp chèn có ảnh hưởng đáng kể đến hiệu suất tổng thể của chương trình không? Tại sao?

  • A. Không đáng kể. Với kích thước danh sách rất nhỏ, sự khác biệt về số phép toán giữa các thuật toán là không đáng kể, và các yếu tố khác (như thời gian đọc dữ liệu) có thể chi phối hiệu suất hơn.
  • B. Có, việc lựa chọn thuật toán kém hiệu quả nhất (ví dụ: nổi bọt) sẽ làm chương trình chạy chậm đi rất nhiều.
  • C. Chỉ ảnh hưởng nếu danh sách đã được sắp xếp trước đó.
  • D. Chỉ ảnh hưởng khi sắp xếp giảm dần.

Câu 18: Trong bài toán thực hành, giả sử bạn đọc dữ liệu số từ tệp, nhưng một dòng trong tệp lại chứa ký tự chữ cái. Điều gì có khả năng xảy ra khi bạn cố gắng chuyển đổi dòng đó sang kiểu số (ví dụ: `int()` hoặc `float()`)?

  • A. Ký tự chữ cái sẽ tự động bị bỏ qua và chỉ phần số được chuyển đổi.
  • B. Chương trình sẽ tự động sửa lỗi và chuyển đổi thành số 0.
  • C. Chương trình sẽ gặp lỗi và dừng lại (ví dụ: `ValueError`).
  • D. Ký tự chữ cái sẽ được coi là số 0 trong quá trình chuyển đổi.

Câu 19: Khi sử dụng thuật toán sắp xếp chèn, ưu điểm chính của nó so với sắp xếp chọn hoặc nổi bọt trong một số trường hợp thực tế là gì?

  • A. Luôn có hiệu suất tốt nhất với mọi loại dữ liệu đầu vào.
  • B. Hiệu quả cao khi danh sách đầu vào đã gần được sắp xếp hoặc có kích thước nhỏ.
  • C. Yêu cầu ít bộ nhớ hơn đáng kể so với các thuật toán khác.
  • D. Dễ dàng cài đặt để sắp xếp các kiểu dữ liệu phức tạp.

Câu 20: Xem xét đoạn mã Python sau (giả định `danhsach` là một list số):
```python
for i in range(len(danhsach) - 1):
if danhsach[i] > danhsach[i+1]:
danhsach[i], danhsach[i+1] = danhsach[i+1], danhsach[i]
```
Đoạn mã này thực hiện một bước của thuật toán sắp xếp nào?

  • A. Thuật toán nổi bọt (Bubble Sort).
  • B. Thuật toán sắp xếp chọn (Selection Sort).
  • C. Thuật toán sắp xếp chèn (Insertion Sort).
  • D. Thuật toán sắp xếp nhanh (Quick Sort).

Câu 21: Mục đích của việc sử dụng hàm `strip()` khi đọc dữ liệu dạng chuỗi từ tệp trong Python là gì?

  • A. Chuyển chuỗi thành số nguyên.
  • B. Chỉ lấy ký tự đầu tiên của chuỗi.
  • C. Chỉ lấy ký tự cuối cùng của chuỗi.
  • D. Xóa bỏ các ký tự trắng (khoảng trống, tab, xuống dòng) ở đầu và cuối chuỗi.

Câu 22: Trong bài toán sắp xếp điểm trung bình theo thứ tự giảm dần, nếu bạn sử dụng thuật toán sắp xếp chèn, bạn sẽ chèn các phần tử vào phần đã sắp xếp như thế nào?

  • A. Chèn vào vị trí sao cho nó lớn hơn hoặc bằng phần tử đứng sau và nhỏ hơn hoặc bằng phần tử đứng trước trong phần đã sắp xếp.
  • B. Luôn chèn vào cuối phần đã sắp xếp.
  • C. Luôn chèn vào đầu phần đã sắp xếp.
  • D. Chèn vào vị trí ngẫu nhiên trong phần đã sắp xếp.

Câu 23: Điểm khác biệt cốt lõi trong cách tiếp cận giữa thuật toán sắp xếp chọn và sắp xếp chèn là gì?

  • A. Sắp xếp chọn sử dụng hoán đổi, còn sắp xếp chèn chỉ sử dụng dịch chuyển.
  • B. Sắp xếp chọn làm việc từ cuối danh sách, còn sắp xếp chèn làm việc từ đầu.
  • C. Sắp xếp chọn tập trung vào việc tìm phần tử MIN/MAX và đặt vào đúng vị trí, còn sắp xếp chèn tập trung vào việc lấy từng phần tử và chèn vào đúng chỗ trong phần đã sắp xếp.
  • D. Sắp xếp chọn hiệu quả với danh sách lớn, còn sắp xếp chèn hiệu quả với danh sách nhỏ.

Câu 24: Giả sử bạn cần sắp xếp một danh sách các đối tượng phức tạp (ví dụ: danh sách học sinh, mỗi học sinh là một đối tượng có tên, điểm Toán, điểm Văn...). Để sắp xếp danh sách này dựa trên tiêu chí "điểm Toán tăng dần", bạn cần thực hiện điều chỉnh gì trong quá trình so sánh của thuật toán sắp xếp?

  • A. So sánh trực tiếp hai đối tượng học sinh.
  • B. Truy cập thuộc tính "điểm Toán" của hai đối tượng học sinh và so sánh giá trị điểm này.
  • C. Chuyển đổi đối tượng học sinh thành chuỗi rồi so sánh chuỗi.
  • D. Chỉ so sánh tên của học sinh.

Câu 25: Khi thực hành sắp xếp, việc kiểm tra danh sách sau khi sắp xếp có đúng thứ tự yêu cầu (tăng dần hoặc giảm dần) là một bước quan trọng. Tại sao?

  • A. Để xác nhận rằng thuật toán đã được cài đặt và chạy đúng, cho kết quả mong muốn.
  • B. Để làm cho chương trình chạy nhanh hơn.
  • C. Để giải phóng bộ nhớ đã sử dụng.
  • D. Đây là bước bắt buộc trước khi sắp xếp.

Câu 26: Trong bài toán sắp xếp điểm trung bình theo thứ tự giảm dần sử dụng sắp xếp chọn, vòng lặp ngoài cùng (outer loop) thường chạy bao nhiêu lần nếu danh sách có N phần tử?

  • A. N lần.
  • B. N+1 lần.
  • C. N-1 lần.
  • D. Log(N) lần.

Câu 27: Vẫn danh sách [5, 2, 8, 1, 9]. Áp dụng thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp TĂNG DẦN. Danh sách sẽ trông như thế nào sau LẦN LẶP (pass) thứ hai (hoàn thành so sánh cặp cuối cùng của pass 2)?

  • A. [1, 2, 5, 8, 9]
  • B. [2, 5, 1, 8, 9]
  • C. [2, 5, 8, 1, 9]
  • D. [2, 5, 1, 8, 9]

Câu 28: Khi sắp xếp số lượng mặt hàng tăng dần bằng thuật toán sắp xếp chèn, nếu danh sách ban đầu đã được sắp xếp ngược (giảm dần), hiệu suất của thuật toán chèn sẽ như thế nào?

  • A. Sẽ là trường hợp xấu nhất, đòi hỏi nhiều phép dịch chuyển và so sánh nhất.
  • B. Sẽ là trường hợp tốt nhất, chạy rất nhanh.
  • C. Hiệu suất không bị ảnh hưởng bởi thứ tự ban đầu.
  • D. Chỉ ảnh hưởng nếu danh sách có kích thước lớn.

Câu 29: Trong bài toán thực hành, nếu tệp dữ liệu đầu vào trống rỗng, điều gì sẽ xảy ra khi chương trình cố gắng đọc dữ liệu và sắp xếp?

  • A. Chương trình sẽ gặp lỗi vì không có dữ liệu để đọc.
  • B. Danh sách dữ liệu sẽ trống. Thuật toán sắp xếp sẽ chạy trên danh sách trống (không làm gì cả) và chương trình kết thúc bình thường.
  • C. Chương trình sẽ tự động tạo dữ liệu giả để sắp xếp.
  • D. Chương trình sẽ yêu cầu người dùng nhập dữ liệu từ bàn phím.

Câu 30: Mục đích chính của việc học các thuật toán sắp xếp đơn giản (như nổi bọt, chọn, chèn) trong bài thực hành này là gì?

  • A. Để luôn sử dụng chúng trong mọi tình huống lập trình thực tế.
  • B. Để chứng minh rằng chúng là các thuật toán sắp xếp nhanh nhất.
  • C. Chỉ để làm quen với cú pháp lập trình.
  • D. Để hiểu nguyên lý hoạt động cơ bản của việc sắp xếp, rèn luyện kỹ năng phân tích và cài đặt thuật toán, làm nền tảng cho việc học các thuật toán phức tạp hơn và áp dụng vào giải quyết vấn đề thực tế.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 1: Trong bài toán thực hành sắp xếp dữ liệu từ tệp, bước đầu tiên và quan trọng nhất thường là gì trước khi áp dụng thuật toán sắp xếp?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 2: Giả sử bạn cần sắp xếp một danh sách điểm của học sinh được đọc từ tệp văn bản theo thứ tự giảm dần. Thuật toán sắp xếp chọn (Selection Sort) hoạt động như thế nào để đạt được mục tiêu này?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 3: Trong thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp một danh sách số lượng mặt hàng theo thứ tự tăng dần, tại sao cần dịch chuyển các phần tử lớn hơn giá trị đang xét sang phải?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 4: Bạn có một tệp văn bản 'diem.txt' chứa điểm trung bình của mỗi học sinh trên một dòng riêng biệt. Đoạn mã Python nào sau đây đọc dữ liệu từ tệp này và lưu vào một danh sách?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 5: Sau khi sắp xếp danh sách số lượng mặt hàng theo thứ tự tăng dần bằng thuật toán sắp xếp chèn, ý nghĩa thực tế của việc này trong quản lý kho là gì?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 6: Xem xét danh sách [5, 2, 8, 1, 9]. Áp dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp TĂNG DẦN. Danh sách sẽ trông như thế nào sau LẦN ĐẦU TIÊN tìm thấy phần tử nhỏ nhất và đổi chỗ về đúng vị trí?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 7: Vẫn danh sách [5, 2, 8, 1, 9]. Áp dụng thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp TĂNG DẦN. Danh sách sẽ trông như thế nào sau khi phần tử SỐ 2 (giá trị 8) đã được chèn vào đúng vị trí của nó trong phần đã sắp xếp?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 8: Khi làm việc với tệp dữ liệu lớn trong bài toán sắp xếp thực tế, việc đọc toàn bộ dữ liệu vào bộ nhớ (RAM) có thể gây ra vấn đề gì?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 9: Thuật toán sắp xếp nào thường được coi là hiệu quả nhất trong thực tế khi danh sách đầu vào có kích thước trung bình và đã GẦN NHƯ được sắp xếp?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 10: Trong bài toán sắp xếp điểm học sinh theo thứ tự giảm dần, nếu sử dụng thuật toán sắp xếp chọn, biến lưu chỉ số của phần tử cần tìm trong mỗi vòng lặp (ví dụ: `max_idx`) sẽ có mục đích gì?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 11: Giả sử bạn có một danh sách các chuỗi cần sắp xếp theo thứ tự từ điển (ví dụ: tên sản phẩm). Thuật toán sắp xếp chèn có thể áp dụng cho kiểu dữ liệu này không và nguyên tắc so sánh sẽ như thế nào?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 12: Khi trình bày kết quả sắp xếp từ một tệp dữ liệu (ví dụ: số lượng mặt hàng), tại sao việc in danh sách đã sắp xếp ra màn hình hoặc ghi ra một tệp khác là cần thiết?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 13: Bạn có một danh sách gồm 100 phần tử. Nếu sử dụng thuật toán sắp xếp nổi bọt (Bubble Sort), điều gì xảy ra ở cuối LẦN LẶP (pass) đầu tiên?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 14: Trong thuật toán sắp xếp chèn, phần 'đã sắp xếp' của danh sách ban đầu là gì?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 15: Giả sử bạn đang thực hiện sắp xếp chèn một danh sách số nguyên. Bạn đang xét phần tử tại chỉ số `i`. Để chèn phần tử này vào phần danh sách đã sắp xếp trước đó (từ chỉ số 0 đến `i-1`), bạn cần so sánh nó với các phần tử nào?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 16: Khi sắp xếp điểm trung bình học sinh theo thứ tự giảm dần bằng thuật toán sắp xếp chọn, nếu có hai học sinh có điểm trung bình bằng nhau, thứ tự tương đối của họ trong danh sách sau khi sắp xếp có được đảm bảo giữ nguyên so với danh sách ban đầu không? (Đây là tính ổn định của thuật toán)

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 17: Bạn cần sắp xếp một danh sách rất nhỏ (ví dụ: dưới 10 phần tử) trong một chương trình thực tế. Việc lựa chọn giữa sắp xếp nổi bọt, sắp xếp chọn hay sắp xếp chèn có ảnh hưởng đáng kể đến hiệu suất tổng thể của chương trình không? Tại sao?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 18: Trong bài toán thực hành, giả sử bạn đọc dữ liệu số từ tệp, nhưng một dòng trong tệp lại chứa ký tự chữ cái. Điều gì có khả năng xảy ra khi bạn cố gắng chuyển đổi dòng đó sang kiểu số (ví dụ: `int()` hoặc `float()`)?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 19: Khi sử dụng thuật toán sắp xếp chèn, ưu điểm chính của nó so với sắp xếp chọn hoặc nổi bọt trong một số trường hợp thực tế là gì?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 20: Xem xét đoạn mã Python sau (giả định `danhsach` là một list số):
```python
for i in range(len(danhsach) - 1):
if danhsach[i] > danhsach[i+1]:
danhsach[i], danhsach[i+1] = danhsach[i+1], danhsach[i]
```
Đoạn mã này thực hiện một bước của thuật toán sắp xếp nào?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 21: Mục đích của việc sử dụng hàm `strip()` khi đọc dữ liệu dạng chuỗi từ tệp trong Python là gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 22: Trong bài toán sắp xếp điểm trung bình theo thứ tự giảm dần, nếu bạn sử dụng thuật toán sắp xếp chèn, bạn sẽ chèn các phần tử vào phần đã sắp xếp như thế nào?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 23: Điểm khác biệt cốt lõi trong cách tiếp cận giữa thuật toán sắp xếp chọn và sắp xếp chèn là gì?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 24: Giả sử bạn cần sắp xếp một danh sách các đối tượng phức tạp (ví dụ: danh sách học sinh, mỗi học sinh là một đối tượng có tên, điểm Toán, điểm Văn...). Để sắp xếp danh sách này dựa trên tiêu chí 'điểm Toán tăng dần', bạn cần thực hiện điều chỉnh gì trong quá trình so sánh của thuật toán sắp xếp?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 25: Khi thực hành sắp xếp, việc kiểm tra danh sách sau khi sắp xếp có đúng thứ tự yêu cầu (tăng dần hoặc giảm dần) là một bước quan trọng. Tại sao?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 26: Trong bài toán sắp xếp điểm trung bình theo thứ tự giảm dần sử dụng sắp xếp chọn, vòng lặp ngoài cùng (outer loop) thường chạy bao nhiêu lần nếu danh sách có N phần tử?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 27: Vẫn danh sách [5, 2, 8, 1, 9]. Áp dụng thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp TĂNG DẦN. Danh sách sẽ trông như thế nào sau LẦN LẶP (pass) thứ hai (hoàn thành so sánh cặp cuối cùng của pass 2)?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 28: Khi sắp xếp số lượng mặt hàng tăng dần bằng thuật toán sắp xếp chèn, nếu danh sách ban đầu đã được sắp xếp ngược (giảm dần), hiệu suất của thuật toán chèn sẽ như thế nào?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 29: Trong bài toán thực hành, nếu tệp dữ liệu đầu vào trống rỗng, điều gì sẽ xảy ra khi chương trình cố gắng đọc dữ liệu và sắp xếp?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 05

Câu 30: Mục đích chính của việc học các thuật toán sắp xếp đơn giản (như nổi bọt, chọn, chèn) trong bài thực hành này là gì?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 06

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 06 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Khi thực hiện sắp xếp chèn (Insertion Sort) một danh sách các số nguyên theo thứ tự tăng dần, sau mỗi bước lặp của vòng lặp ngoài, điều gì được đảm bảo đúng?

  • A. Phần tử nhỏ nhất của toàn bộ danh sách đã được đưa về đầu.
  • B. Toàn bộ danh sách đã được sắp xếp hoàn chỉnh.
  • C. Một phần đầu của danh sách (từ đầu đến chỉ số của phần tử đang xét) đã được sắp xếp.
  • D. Phần tử lớn nhất của phần còn lại chưa sắp xếp đã được đưa về cuối.

Câu 2: Cho danh sách [5, 2, 8, 1, 9]. Khi áp dụng thuật toán sắp xếp chọn (Selection Sort) theo thứ tự tăng dần, trạng thái của danh sách sau lượt lặp ngoài đầu tiên (tìm và đặt phần tử nhỏ nhất vào vị trí đầu tiên) là gì?

  • A. [2, 5, 8, 1, 9]
  • B. [1, 2, 5, 8, 9]
  • C. [5, 2, 8, 1, 9]
  • D. [1, 2, 8, 5, 9]

Câu 3: Trong thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần, khi chèn một phần tử `x` vào dãy con đã sắp xếp, các phần tử trong dãy con lớn hơn `x` sẽ được xử lý như thế nào?

  • A. Chúng bị loại bỏ khỏi danh sách.
  • B. Chúng được dịch chuyển sang phải một vị trí để tạo chỗ trống cho `x`.
  • C. Chúng được dịch chuyển sang trái một vị trí.
  • D. Chúng được hoán đổi với phần tử `x`.

Câu 4: Bạn cần sắp xếp một danh sách gồm 100 điểm thi của học sinh theo thứ tự giảm dần. Thuật toán sắp xếp chọn (Selection Sort) hoạt động dựa trên nguyên tắc nào để thực hiện điều này một cách hiệu quả?

  • A. So sánh các phần tử kề nhau và hoán đổi nếu sai thứ tự.
  • B. Chèn từng phần tử vào đúng vị trí trong dãy đã sắp xếp.
  • C. Tìm phần tử lớn nhất trong phần còn lại chưa sắp xếp và đưa nó về đầu phần đó.
  • D. Chia danh sách thành hai nửa và sắp xếp từng nửa.

Câu 5: Khi đọc dữ liệu số nguyên từ một tệp văn bản (ví dụ: "data.txt") với mỗi số trên một dòng, đoạn mã Python nào sau đây đúng để đọc tất cả các số vào một danh sách?

  • A. ```python
    data_list = []
    with open("data.txt", "r") as f:
    for line in f:
    data_list.append(int(line.strip()))
    ```
  • B. ```python
    data_list = open("data.txt").readlines()
    ```
  • C. ```python
    data_list = read("data.txt")
    ```
  • D. ```python
    data_list = [line.strip() for line in open("data.txt")]
    ```

Câu 6: Giả sử bạn có một danh sách gồm 5000 phần tử đã được sắp xếp gần hết, chỉ có khoảng 10 phần tử nằm sai vị trí. Thuật toán sắp xếp nào trong hai thuật toán đơn giản (Chèn hoặc Chọn) có xu hướng hoạt động hiệu quả hơn trong trường hợp này và tại sao?

  • A. Sắp xếp chèn, vì nó ít phải di chuyển các phần tử đã gần đúng vị trí.
  • B. Sắp xếp chọn, vì nó luôn tìm phần tử đúng vị trí tiếp theo.
  • C. Cả hai đều có hiệu suất tương đương với dữ liệu gần sắp xếp.
  • D. Không thể xác định mà không biết giá trị cụ thể của các phần tử.

Câu 7: Trong thuật toán sắp xếp chọn (Selection Sort) theo thứ tự tăng dần, vòng lặp bên ngoài (outer loop) có mục đích chính là gì?

  • A. So sánh các phần tử kề nhau và hoán đổi.
  • B. Tìm vị trí thích hợp để chèn phần tử đang xét.
  • C. Duyệt qua các phần tử trong dãy con đã sắp xếp.
  • D. Xác định vị trí hiện tại cần đặt phần tử nhỏ nhất (hoặc lớn nhất) tiếp theo vào đó.

Câu 8: Khi viết chương trình thực hành sắp xếp, sau khi đã đọc dữ liệu từ tệp vào một danh sách và sắp xếp xong, bước tiếp theo thường là gì để người dùng thấy được kết quả?

  • A. Đóng tệp đã đọc.
  • B. Gọi lại hàm sắp xếp với thuật toán khác.
  • C. In danh sách đã sắp xếp ra màn hình hoặc ghi vào một tệp khác.
  • D. Tính toán giá trị trung bình của các phần tử.

Câu 9: Giả sử bạn đang sử dụng sắp xếp chèn (Insertion Sort) để sắp xếp danh sách [4, 1, 3, 2] theo thứ tự tăng dần. Sau khi phần tử `1` (ở vị trí chỉ số 1 ban đầu) được chèn vào đúng vị trí của nó, danh sách sẽ trông như thế nào?

  • A. [4, 1, 3, 2]
  • B. [1, 4, 3, 2]
  • C. [1, 2, 3, 4]
  • D. [4, 3, 2, 1]

Câu 10: Điểm khác biệt cơ bản trong cách hoạt động giữa sắp xếp chèn (Insertion Sort) và sắp xếp chọn (Selection Sort) ở mỗi bước lặp chính là gì?

  • A. Sắp xếp chèn tìm vị trí và chèn phần tử hiện tại vào dãy đã sắp xếp; Sắp xếp chọn tìm phần tử nhỏ nhất/lớn nhất và hoán đổi nó về vị trí đúng.
  • B. Sắp xếp chèn sử dụng vòng lặp lồng nhau; Sắp xếp chọn thì không.
  • C. Sắp xếp chèn hiệu quả hơn với danh sách lớn; Sắp xếp chọn hiệu quả hơn với danh sách nhỏ.
  • D. Sắp xếp chèn chỉ sắp xếp số nguyên; Sắp xếp chọn có thể sắp xếp bất kỳ kiểu dữ liệu nào.

Câu 11: Trong Python, khi đọc một dòng từ tệp bằng `f.readline()`, kết quả trả về là một chuỗi. Nếu dòng đó chứa số "123", làm thế nào để chuyển nó thành số nguyên 123 để có thể sắp xếp tính toán?

  • A. Sử dụng `str("123")`
  • B. Sử dụng `float("123")`
  • C. Sử dụng `eval("123")`
  • D. Sử dụng `int("123")`

Câu 12: Khi triển khai thuật toán sắp xếp chèn (Insertion Sort), việc sử dụng một biến tạm (ví dụ: `key`) để lưu giữ giá trị của phần tử đang xét trước khi dịch chuyển các phần tử khác có ý nghĩa gì?

  • A. Để tránh làm mất giá trị của phần tử đó khi các phần tử khác được dịch chuyển đè lên vị trí ban đầu của nó.
  • B. Để đếm số lần so sánh.
  • C. Để đánh dấu phần tử đã được sắp xếp.
  • D. Để lưu chỉ số của phần tử nhỏ nhất.

Câu 13: Bạn được yêu cầu sắp xếp danh sách tên học sinh theo thứ tự bảng chữ cái. Cấu trúc dữ liệu nào thường được sử dụng để lưu trữ danh sách này trong Python trước khi sắp xếp?

  • A. Từ điển (Dictionary)
  • B. Tập hợp (Set)
  • C. Danh sách (List)
  • D. Tuple

Câu 14: Xem xét đoạn mã giả của thuật toán sắp xếp chọn (Selection Sort) theo thứ tự tăng dần. Vòng lặp bên trong (inner loop) thường có mục đích gì?

  • A. Dịch chuyển các phần tử để tạo chỗ trống.
  • B. Tìm chỉ số của phần tử nhỏ nhất (hoặc lớn nhất) trong phần còn lại chưa sắp xếp.
  • C. So sánh phần tử hiện tại với phần tử liền trước nó.
  • D. Hoán đổi phần tử đầu tiên và cuối cùng.

Câu 15: Khi thực hiện sắp xếp chèn (Insertion Sort) trên danh sách [3, 1, 4, 1, 5, 9, 2, 6] theo thứ tự tăng dần, phần tử `1` thứ hai (tại chỉ số 3 ban đầu) sẽ được chèn vào vị trí nào sau khi các phần tử trước nó (3, 1, 4) đã được xử lý và sắp xếp vào dãy con [1, 3, 4]?

  • A. Ngay sau phần tử 1 đầu tiên.
  • B. Ngay trước phần tử 3.
  • C. Ở cuối dãy con đã sắp xếp.
  • D. Ở vị trí chỉ số 0.

Câu 16: Giả sử tệp "scores.txt" chứa các điểm số: 85
92
78
95. Nếu bạn đọc tệp này và lưu vào danh sách bằng cách sử dụng `int(line.strip())` cho mỗi dòng, danh sách cuối cùng sẽ là gì?

  • A. ["85", "92", "78", "95"]
  • B. [85, 92, 78, 95]
  • C. [85.0, 92.0, 78.0, 95.0]
  • D. ["85n", "92n", "78n", "95n"]

Câu 17: Trong thuật toán sắp xếp chọn (Selection Sort) theo thứ tự giảm dần, sau mỗi lượt lặp ngoài, phần tử được đặt vào vị trí đầu tiên của dãy con chưa sắp xếp là:

  • A. Phần tử lớn nhất trong dãy con chưa sắp xếp.
  • B. Phần tử nhỏ nhất trong dãy con chưa sắp xếp.
  • C. Phần tử đầu tiên của toàn bộ danh sách.
  • D. Phần tử cuối cùng của toàn bộ danh sách.

Câu 18: Bạn đang thực hiện sắp xếp một danh sách rất lớn (hàng triệu phần tử). Mặc dù bài 22 chỉ giới thiệu các thuật toán đơn giản, dựa trên hiểu biết về độ phức tạp thời gian cơ bản, tại sao sắp xếp chèn và sắp xếp chọn thường không được khuyến khích dùng cho dữ liệu lớn trong thực tế?

  • A. Chúng yêu cầu quá nhiều bộ nhớ.
  • B. Chúng chỉ hoạt động với số nguyên.
  • C. Chúng có độ phức tạp thời gian trung bình và xấu nhất là O(n^2), trở nên rất chậm với n lớn.
  • D. Chúng không thể sắp xếp theo thứ tự giảm dần.

Câu 19: Khi lập trình thuật toán sắp xếp chèn (Insertion Sort), vòng lặp bên trong (inner loop) thường được sử dụng để làm gì?

  • A. Tìm phần tử nhỏ nhất trong phần còn lại.
  • B. Tìm vị trí đúng để chèn phần tử `key` vào dãy con đã sắp xếp và dịch chuyển các phần tử lớn hơn.
  • C. Hoán đổi phần tử đầu tiên và cuối cùng.
  • D. Chia danh sách thành các phần nhỏ hơn.

Câu 20: Giả sử bạn có danh sách [7, 4, 2, 5]. Khi sử dụng sắp xếp chọn (Selection Sort) theo thứ tự tăng dần, sau khi phần tử nhỏ nhất được đưa về vị trí đầu tiên, danh sách sẽ là:

  • A. [7, 4, 2, 5]
  • B. [4, 7, 2, 5]
  • C. [2, 4, 7, 5]
  • D. [2, 4, 5, 7]

Câu 21: Một tệp "data.txt" chứa các dòng sau:
15
8
22
10
Nếu chương trình đọc tệp này và lưu các số vào danh sách `nums` sau đó gọi hàm `InsertionSort(nums)` để sắp xếp tăng dần, kết quả in ra màn hình sau khi sắp xếp là gì?

  • A. [15, 8, 22, 10]
  • B. [22, 15, 10, 8]
  • C. [8, 10, 15, 22, n]
  • D. [8, 10, 15, 22]

Câu 22: Khi so sánh số lần hoán đổi (swap) trung bình giữa sắp xếp chèn (Insertion Sort) và sắp xếp chọn (Selection Sort), phát biểu nào sau đây thường đúng?

  • A. Sắp xếp chọn thực hiện số lần hoán đổi cố định (n-1) lần, còn sắp xếp chèn có thể thực hiện ít hoặc nhiều hơn tùy thuộc vào dữ liệu ban đầu.
  • B. Sắp xếp chèn luôn thực hiện ít hoán đổi hơn sắp xếp chọn.
  • C. Sắp xếp chọn luôn thực hiện ít hoán đổi hơn sắp xếp chèn.
  • D. Số lần hoán đổi của cả hai thuật toán là như nhau.

Câu 23: Trong ngữ cảnh đọc dữ liệu từ tệp văn bản, tại sao việc sử dụng phương thức `.strip()` cho mỗi dòng đọc được trước khi chuyển đổi sang số (`int()` hoặc `float()`) là quan trọng?

  • A. Để chuyển đổi chuỗi thành chữ hoa.
  • B. Để kiểm tra xem dòng có rỗng hay không.
  • C. Để loại bỏ các ký tự khoảng trắng (bao gồm cả ký tự xuống dòng `n`) ở đầu và cuối chuỗi, tránh lỗi khi chuyển đổi sang số.
  • D. Để chia chuỗi thành các từ riêng biệt.

Câu 24: Giả sử bạn có danh sách [2, 8, 5, 3]. Áp dụng sắp xếp chèn (Insertion Sort) tăng dần. Sau khi xử lý xong phần tử `5` (ở chỉ số 2 ban đầu), danh sách sẽ ở trạng thái nào?

  • A. [2, 5, 8, 3]
  • B. [2, 3, 5, 8]
  • C. [2, 8, 5, 3]
  • D. [2, 5, 3, 8]

Câu 25: Khi thực hành sắp xếp, việc kiểm tra xem tệp dữ liệu có tồn tại hay không trước khi cố gắng mở nó là một kỹ năng lập trình tốt. Trong Python, cấu trúc nào thường được dùng để xử lý các lỗi có thể xảy ra (như tệp không tồn tại) khi làm việc với tệp?

  • A. if/else
  • B. try/except
  • C. for loop
  • D. while loop

Câu 26: Thuật toán sắp xếp nào trong hai thuật toán đã học (Chèn và Chọn) có đặc điểm là số lần so sánh ít thay đổi nhất dù dữ liệu đầu vào đã được sắp xếp hay chưa?

  • A. Sắp xếp chèn.
  • B. Sắp xếp nổi bọt.
  • C. Cả hai đều thay đổi nhiều.
  • D. Sắp xếp chọn.

Câu 27: Trong bài toán sắp xếp điểm trung bình học sinh theo thứ tự giảm dần bằng sắp xếp chọn, nếu có nhiều học sinh có cùng điểm trung bình cao nhất, thuật toán sẽ hoạt động như thế nào?

  • A. Nó sẽ tìm thấy một trong số các phần tử lớn nhất và hoán đổi nó về vị trí đầu tiên của dãy con chưa sắp xếp.
  • B. Nó sẽ báo lỗi vì không thể xử lý giá trị trùng lặp.
  • C. Nó sẽ chỉ chọn phần tử lớn nhất xuất hiện đầu tiên trong danh sách.
  • D. Nó sẽ tạo ra nhiều bản sao của phần tử lớn nhất.

Câu 28: Khi sắp xếp chèn (Insertion Sort) một danh sách [6, 4, 1, 8] theo thứ tự tăng dần, sau khi phần tử `6` được coi là dãy con đã sắp xếp (gồm 1 phần tử), chúng ta sẽ xem xét phần tử tiếp theo là `4`. Quá trình chèn `4` vào dãy con [6] sẽ diễn ra như thế nào?

  • A. So sánh 4 với 8, rồi với 1.
  • B. So sánh 4 với 6, thấy 4 nhỏ hơn 6, dịch chuyển 6 sang phải, chèn 4 vào vị trí đầu.
  • C. Hoán đổi 4 và 6.
  • D. Bỏ qua 4 vì nó không nhỏ hơn 6.

Câu 29: Để sắp xếp danh sách các số nguyên theo thứ tự giảm dần bằng thuật toán sắp xếp chèn (Insertion Sort), logic so sánh trong vòng lặp bên trong cần thay đổi như thế nào so với sắp xếp tăng dần?

  • A. Thay `>` thành `<` khi so sánh phần tử `key` với các phần tử trong dãy đã sắp xếp.
  • B. Thay `<` thành `>=` khi so sánh phần tử `key` với các phần tử trong dãy đã sắp xếp.
  • C. Thay `>` thành `<` khi so sánh phần tử `key` với các phần tử trong dãy đã sắp xếp VÀ dịch chuyển các phần tử nhỏ hơn sang phải.
  • D. Không cần thay đổi logic so sánh, chỉ cần in ngược danh sách cuối cùng.

Câu 30: Khi thực hành đọc dữ liệu từ tệp, nếu tệp "numbers.txt" không tồn tại, đoạn mã Python sử dụng `open("numbers.txt", "r")` sẽ gây ra lỗi gì?

  • A. FileNotFoundError
  • B. ValueError
  • C. TypeError
  • D. IndexError

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 1: Khi thực hiện sắp xếp chèn (Insertion Sort) một danh sách các số nguyên theo thứ tự tăng dần, sau mỗi bước lặp của vòng lặp ngoài, điều gì được đảm bảo đúng?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 2: Cho danh sách [5, 2, 8, 1, 9]. Khi áp dụng thuật toán sắp xếp chọn (Selection Sort) theo thứ tự tăng dần, trạng thái của danh sách sau *lượt lặp ngoài đầu tiên* (tìm và đặt phần tử nhỏ nhất vào vị trí đầu tiên) là gì?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 3: Trong thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần, khi chèn một phần tử `x` vào dãy con đã sắp xếp, các phần tử trong dãy con lớn hơn `x` sẽ được xử lý như thế nào?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 4: Bạn cần sắp xếp một danh sách gồm 100 điểm thi của học sinh theo thứ tự giảm dần. Thuật toán sắp xếp chọn (Selection Sort) hoạt động dựa trên nguyên tắc nào để thực hiện điều này một cách hiệu quả?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 5: Khi đọc dữ liệu số nguyên từ một tệp văn bản (ví dụ: 'data.txt') với mỗi số trên một dòng, đoạn mã Python nào sau đây *đúng* để đọc tất cả các số vào một danh sách?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 6: Giả sử bạn có một danh sách gồm 5000 phần tử đã được sắp xếp gần hết, chỉ có khoảng 10 phần tử nằm sai vị trí. Thuật toán sắp xếp nào trong hai thuật toán đơn giản (Chèn hoặc Chọn) có xu hướng hoạt động hiệu quả hơn trong trường hợp này và tại sao?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 7: Trong thuật toán sắp xếp chọn (Selection Sort) theo thứ tự tăng dần, vòng lặp bên ngoài (outer loop) có mục đích chính là gì?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 8: Khi viết chương trình thực hành sắp xếp, sau khi đã đọc dữ liệu từ tệp vào một danh sách và sắp xếp xong, bước tiếp theo thường là gì để người dùng thấy được kết quả?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 9: Giả sử bạn đang sử dụng sắp xếp chèn (Insertion Sort) để sắp xếp danh sách [4, 1, 3, 2] theo thứ tự tăng dần. Sau khi phần tử `1` (ở vị trí chỉ số 1 ban đầu) được chèn vào đúng vị trí của nó, danh sách sẽ trông như thế nào?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 10: Điểm khác biệt cơ bản trong cách hoạt động giữa sắp xếp chèn (Insertion Sort) và sắp xếp chọn (Selection Sort) ở mỗi bước lặp chính là gì?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 11: Trong Python, khi đọc một dòng từ tệp bằng `f.readline()`, kết quả trả về là một chuỗi. Nếu dòng đó chứa số '123', làm thế nào để chuyển nó thành số nguyên 123 để có thể sắp xếp tính toán?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 12: Khi triển khai thuật toán sắp xếp chèn (Insertion Sort), việc sử dụng một biến tạm (ví dụ: `key`) để lưu giữ giá trị của phần tử đang xét trước khi dịch chuyển các phần tử khác có ý nghĩa gì?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 13: Bạn được yêu cầu sắp xếp danh sách tên học sinh theo thứ tự bảng chữ cái. Cấu trúc dữ liệu nào thường được sử dụng để lưu trữ danh sách này trong Python trước khi sắp xếp?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 14: Xem xét đoạn mã giả của thuật toán sắp xếp chọn (Selection Sort) theo thứ tự tăng dần. Vòng lặp bên trong (inner loop) thường có mục đích gì?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 15: Khi thực hiện sắp xếp chèn (Insertion Sort) trên danh sách [3, 1, 4, 1, 5, 9, 2, 6] theo thứ tự tăng dần, phần tử `1` thứ hai (tại chỉ số 3 ban đầu) sẽ được chèn vào vị trí nào sau khi các phần tử trước nó (3, 1, 4) đã được xử lý và sắp xếp vào dãy con [1, 3, 4]?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 16: Giả sử tệp 'scores.txt' chứa các điểm số: 85
92
78
95. Nếu bạn đọc tệp này và lưu vào danh sách bằng cách sử dụng `int(line.strip())` cho mỗi dòng, danh sách cuối cùng sẽ là gì?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 17: Trong thuật toán sắp xếp chọn (Selection Sort) theo thứ tự giảm dần, sau mỗi lượt lặp ngoài, phần tử được đặt vào vị trí đầu tiên của dãy con chưa sắp xếp là:

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 18: Bạn đang thực hiện sắp xếp một danh sách rất lớn (hàng triệu phần tử). Mặc dù bài 22 chỉ giới thiệu các thuật toán đơn giản, dựa trên hiểu biết về độ phức tạp thời gian cơ bản, tại sao sắp xếp chèn và sắp xếp chọn thường không được khuyến khích dùng cho dữ liệu lớn trong thực tế?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 19: Khi lập trình thuật toán sắp xếp chèn (Insertion Sort), vòng lặp bên trong (inner loop) thường được sử dụng để làm gì?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 20: Giả sử bạn có danh sách [7, 4, 2, 5]. Khi sử dụng sắp xếp chọn (Selection Sort) theo thứ tự tăng dần, sau khi phần tử nhỏ nhất được đưa về vị trí đầu tiên, danh sách sẽ là:

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 21: Một tệp 'data.txt' chứa các dòng sau:
15
8
22
10
Nếu chương trình đọc tệp này và lưu các số vào danh sách `nums` sau đó gọi hàm `InsertionSort(nums)` để sắp xếp tăng dần, kết quả in ra màn hình sau khi sắp xếp là gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 22: Khi so sánh số lần hoán đổi (swap) trung bình giữa sắp xếp chèn (Insertion Sort) và sắp xếp chọn (Selection Sort), phát biểu nào sau đây thường đúng?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 23: Trong ngữ cảnh đọc dữ liệu từ tệp văn bản, tại sao việc sử dụng phương thức `.strip()` cho mỗi dòng đọc được trước khi chuyển đổi sang số (`int()` hoặc `float()`) là quan trọng?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 24: Giả sử bạn có danh sách [2, 8, 5, 3]. Áp dụng sắp xếp chèn (Insertion Sort) tăng dần. Sau khi xử lý xong phần tử `5` (ở chỉ số 2 ban đầu), danh sách sẽ ở trạng thái nào?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 25: Khi thực hành sắp xếp, việc kiểm tra xem tệp dữ liệu có tồn tại hay không trước khi cố gắng mở nó là một kỹ năng lập trình tốt. Trong Python, cấu trúc nào thường được dùng để xử lý các lỗi có thể xảy ra (như tệp không tồn tại) khi làm việc với tệp?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 26: Thuật toán sắp xếp nào trong hai thuật toán đã học (Chèn và Chọn) có đặc điểm là *số lần so sánh* ít thay đổi nhất dù dữ liệu đầu vào đã được sắp xếp hay chưa?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 27: Trong bài toán sắp xếp điểm trung bình học sinh theo thứ tự giảm dần bằng sắp xếp chọn, nếu có nhiều học sinh có cùng điểm trung bình cao nhất, thuật toán sẽ hoạt động như thế nào?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 28: Khi sắp xếp chèn (Insertion Sort) một danh sách [6, 4, 1, 8] theo thứ tự tăng dần, sau khi phần tử `6` được coi là dãy con đã sắp xếp (gồm 1 phần tử), chúng ta sẽ xem xét phần tử tiếp theo là `4`. Quá trình chèn `4` vào dãy con [6] sẽ diễn ra như thế nào?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 29: Để sắp xếp danh sách các số nguyên theo thứ tự giảm dần bằng thuật toán sắp xếp chèn (Insertion Sort), logic so sánh trong vòng lặp bên trong cần thay đổi như thế nào so với sắp xếp tăng dần?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 06

Câu 30: Khi thực hành đọc dữ liệu từ tệp, nếu tệp 'numbers.txt' không tồn tại, đoạn mã Python sử dụng `open('numbers.txt', 'r')` sẽ gây ra lỗi gì?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 07

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 07 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong bài toán sắp xếp, mục đích chính của việc áp dụng thuật toán là gì?

  • A. Tìm kiếm một phần tử cụ thể trong danh sách.
  • B. Thêm hoặc xóa phần tử khỏi danh sách.
  • C. Sắp xếp các phần tử trong danh sách theo một thứ tự nhất định (tăng dần hoặc giảm dần).
  • D. Đếm số lượng phần tử duy nhất trong danh sách.

Câu 2: Khi thực hiện sắp xếp chèn (Insertion Sort) với danh sách `[5, 2, 8, 1, 9]` theo thứ tự tăng dần, sau khi phần tử `2` được chèn vào đúng vị trí trong phần đã sắp xếp, danh sách sẽ trông như thế nào?

  • A. `[2, 5, 8, 1, 9]`
  • B. `[5, 2, 8, 1, 9]`
  • C. `[2, 5, 1, 8, 9]`
  • D. `[1, 2, 5, 8, 9]`

Câu 3: Trong thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần, tại sao cần dịch chuyển các phần tử lớn hơn giá trị đang xét sang phải?

  • A. Để tìm phần tử nhỏ nhất trong phần còn lại của danh sách.
  • B. Để hoán đổi vị trí của phần tử đang xét với phần tử lớn nhất.
  • C. Để kết thúc quá trình sắp xếp nhanh hơn.
  • D. Để tạo không gian chèn phần tử đang xét vào đúng vị trí trong dãy con đã sắp xếp.

Câu 4: Khi thực hiện sắp xếp chọn (Selection Sort) với danh sách `[5, 2, 8, 1, 9]` theo thứ tự tăng dần, sau vòng lặp ngoài đầu tiên (tìm và đặt phần tử nhỏ nhất vào vị trí đầu tiên), danh sách sẽ trông như thế nào?

  • A. `[5, 2, 8, 1, 9]`
  • B. `[1, 2, 8, 5, 9]`
  • C. `[1, 2, 8, 5, 9]` (Lỗi đánh máy ở đáp án 2 và 3, cần sửa một trong hai. Giả sử đáp án 3 là đúng và đáp án 2 là nhiễu khác). Sửa đáp án 2 thành `[5, 2, 1, 8, 9]`. Corrected: `[1, 2, 8, 5, 9]`.
  • D. `[1, 5, 8, 2, 9]`

Câu 5: Trong thuật toán sắp xếp chọn (Selection Sort), biến được dùng để lưu chỉ số của phần tử nhỏ nhất (hoặc lớn nhất) trong dãy con chưa sắp xếp có vai trò gì?

  • A. Lưu giá trị của phần tử nhỏ nhất (hoặc lớn nhất).
  • B. Ghi nhớ vị trí của phần tử nhỏ nhất (hoặc lớn nhất) để thực hiện hoán đổi sau khi kết thúc duyệt dãy con.
  • C. Đếm số lần so sánh đã thực hiện.
  • D. Xác định điểm dừng của thuật toán.

Câu 6: Giả sử bạn có một danh sách dữ liệu "điểm thi" được đọc từ tệp văn bản, mỗi dòng là một điểm. Dòng lệnh Python nào sau đây thường được sử dụng để thêm một điểm đọc được từ biến `line` (dạng chuỗi) vào danh sách `diem_ds`?

  • A. `diem_ds.append(float(line))` (hoặc `int(line)` tùy dữ liệu)
  • B. `diem_ds = line`
  • C. `diem_ds.insert(0, line)`
  • D. `diem_ds += line`

Câu 7: Khi nào thì thuật toán sắp xếp chèn (Insertion Sort) có thể hoạt động hiệu quả hơn thuật toán sắp xếp chọn (Selection Sort) trên thực tế, đặc biệt với các danh sách có kích thước không quá lớn?

  • A. Khi danh sách có kích thước rất lớn.
  • B. Khi cần sắp xếp theo thứ tự giảm dần.
  • C. Khi danh sách đầu vào gần như đã được sắp xếp.
  • D. Khi các phần tử trong danh sách đều giống nhau.

Câu 8: Để sắp xếp một danh sách theo thứ tự giảm dần bằng thuật toán sắp xếp chọn (Selection Sort), trong mỗi bước lặp chính, chúng ta cần tìm phần tử nào trong dãy con chưa sắp xếp?

  • A. Phần tử lớn nhất.
  • B. Phần tử nhỏ nhất.
  • C. Phần tử ở giữa.
  • D. Phần tử đầu tiên.

Câu 9: Xét danh sách `[3, 1, 4, 1, 5, 9, 2, 6]`. Sau khi áp dụng thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần và hoàn thành việc chèn phần tử `4` vào đúng vị trí, danh sách sẽ trông như thế nào?

  • A. `[1, 3, 4, 5, 9, 2, 6]`
  • B. `[1, 3, 4, 1, 5, 9, 2, 6]`
  • C. `[3, 1, 4, 1, 5, 9, 2, 6]`
  • D. `[1, 1, 2, 3, 4, 5, 6, 9]`

Câu 10: Một trong những nhược điểm chính của thuật toán sắp xếp nổi bọt (Bubble Sort) so với sắp xếp chèn hoặc sắp xếp chọn, đặc biệt với các danh sách lớn, là gì?

  • A. Khó triển khai bằng mã lệnh.
  • B. Không thể sắp xếp theo thứ tự giảm dần.
  • C. Yêu cầu bộ nhớ phụ lớn.
  • D. Thường có hiệu suất kém nhất (số lần so sánh và hoán đổi nhiều) trong các thuật toán đơn giản khi dữ liệu lớn hoặc không gần sắp xếp.

Câu 11: Trong đoạn mã Python thực hiện sắp xếp chọn (Selection Sort), việc sử dụng biến tạm (ví dụ: `temp`) khi hoán đổi giá trị giữa hai vị trí `i` và `j` trong danh sách `arr` (`temp = arr[i]; arr[i] = arr[j]; arr[j] = temp`) là cần thiết vì:

  • A. Để lưu giá trị của một trong hai phần tử trước khi ghi đè, tránh mất dữ liệu.
  • B. Để đếm số lần hoán đổi.
  • C. Để tìm vị trí chính xác của phần tử cần hoán đổi.
  • D. Chỉ số `i` và `j` không thể truy cập trực tiếp giá trị.

Câu 12: Khi đọc dữ liệu số từ một tệp văn bản trong Python, mỗi dòng là một số dưới dạng chuỗi. Để có thể thực hiện các phép so sánh số học trong thuật toán sắp xếp, bạn cần thực hiện bước xử lý nào với dữ liệu đọc được?

  • A. Loại bỏ các ký tự trắng ở cuối dòng (`.strip()`).
  • B. Chuyển đổi chuỗi thành kiểu boolean (`bool()`).
  • C. Chuyển đổi chuỗi thành kiểu số nguyên (`int()`) hoặc số thực (`float()`).
  • D. Đảo ngược thứ tự các ký tự trong chuỗi.

Câu 13: Xét danh sách `[8, 4, 6, 2]`. Áp dụng thuật toán sắp xếp chọn (Selection Sort) theo thứ tự tăng dần. Sau khi hoàn thành vòng lặp ngoài thứ hai, danh sách sẽ trông như thế nào?

  • A. `[2, 4, 6, 8]`
  • B. `[2, 6, 4, 8]`
  • C. `[4, 2, 6, 8]`
  • D. `[8, 4, 6, 2]`

Câu 14: Trong thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần, phần tử đang xét (`key`) được so sánh với các phần tử trong dãy con đã sắp xếp theo trình tự nào?

  • A. Từ đầu dãy con đã sắp xếp đến cuối.
  • B. Từ cuối dãy con đã sắp xếp về phía đầu.
  • C. Chỉ so sánh với phần tử đầu tiên của dãy con đã sắp xếp.
  • D. Chỉ so sánh với phần tử cuối cùng của dãy con đã sắp xếp.

Câu 15: Khi triển khai thuật toán sắp xếp chèn hoặc sắp xếp chọn trong Python, danh sách dữ liệu thường được lưu trữ trong cấu trúc dữ liệu nào?

  • A. Tuple
  • B. Dictionary
  • C. List
  • D. Set

Câu 16: Xét một đoạn mã Python thực hiện bước dịch chuyển trong sắp xếp chèn (tăng dần):
`while j > 0 and arr[j-1] > key:`
` arr[j] = arr[j-1]`
` j -= 1`
Biến `key` trong đoạn mã này đại diện cho điều gì?

  • A. Giá trị nhỏ nhất trong dãy con đã sắp xếp.
  • B. Chỉ số của vị trí cần chèn.
  • C. Phần tử cuối cùng của dãy con chưa sắp xếp.
  • D. Giá trị của phần tử hiện tại đang được chèn vào dãy con đã sắp xếp.

Câu 17: Để sắp xếp điểm trung bình môn Tin học của học sinh theo thứ tự giảm dần, thuật toán sắp xếp chọn (Selection Sort) sẽ hoạt động như thế nào trong mỗi bước lặp chính?

  • A. Tìm phần tử nhỏ nhất trong phần chưa sắp xếp và đưa về vị trí đầu của phần chưa sắp xếp.
  • B. Tìm phần tử lớn nhất trong phần chưa sắp xếp và đưa về vị trí đầu của phần chưa sắp xếp.
  • C. So sánh từng cặp phần tử liền kề và hoán đổi nếu sai thứ tự.
  • D. Chèn phần tử hiện tại vào đúng vị trí trong phần đã sắp xếp.

Câu 18: Xét danh sách `[10, 5, 15, 2]`. Sau khi áp dụng thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần và hoàn thành việc chèn phần tử `15` vào đúng vị trí, danh sách sẽ trông như thế nào?

  • A. `[5, 10, 15, 2]`
  • B. `[5, 10, 2, 15]`
  • C. `[2, 5, 10, 15]`
  • D. `[10, 5, 15, 2]`

Câu 19: Thuật toán sắp xếp nào sau đây chia danh sách thành hai phần: một phần đã sắp xếp và một phần chưa sắp xếp, và ở mỗi bước lặp, nó chọn phần tử "tốt nhất" (nhỏ nhất hoặc lớn nhất) từ phần chưa sắp xếp để đưa về cuối phần đã sắp xếp?

  • A. Thuật toán sắp xếp chèn (Insertion Sort).
  • B. Thuật toán sắp xếp nổi bọt (Bubble Sort).
  • C. Thuật toán sắp xếp chọn (Selection Sort).
  • D. Thuật toán sắp xếp nhanh (Quick Sort).

Câu 20: Khi sử dụng thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp một danh sách theo thứ tự tăng dần, điều gì xảy ra nếu phần tử đang xét nhỏ hơn tất cả các phần tử trong dãy con đã sắp xếp?

  • A. Phần tử đó sẽ được dịch chuyển về vị trí đầu tiên của dãy con đã sắp xếp.
  • B. Phần tử đó sẽ được đặt ở cuối dãy con đã sắp xếp.
  • C. Thuật toán dừng lại.
  • D. Phần tử đó bị bỏ qua.

Câu 21: Nhiệm vụ thực hành yêu cầu đọc dữ liệu từ tệp "kho.inp" để sắp xếp số lượng mặt hàng. Giả sử tệp "kho.inp" không tồn tại, điều gì sẽ xảy ra khi chạy chương trình?

  • A. Chương trình sẽ tạo một tệp "kho.inp" rỗng.
  • B. Chương trình sẽ chạy nhưng danh sách dữ liệu rỗng.
  • C. Chương trình sẽ yêu cầu người dùng nhập dữ liệu từ bàn phím.
  • D. Chương trình sẽ báo lỗi `FileNotFoundError`.

Câu 22: Xét đoạn mã Python để hoán đổi giá trị của `a` và `b` mà không dùng biến tạm:
`a = a + b`
`b = a - b`
`a = a - b`
Nếu ban đầu `a = 5`, `b = 10`, sau khi thực hiện đoạn mã này, giá trị mới của `a` và `b` là bao nhiêu?

  • A. `a = 5`, `b = 10`
  • B. `a = 15`, `b = 10`
  • C. `a = 10`, `b = 5`
  • D. `a = 5`, `b = 5`

Câu 23: Trong thuật toán sắp xếp chọn (Selection Sort) theo thứ tự tăng dần, sau mỗi lần lặp của vòng lặp ngoài, điều gì chắc chắn đúng về phần tử tại vị trí đầu tiên của dãy con chưa sắp xếp?

  • A. Nó là phần tử nhỏ nhất trong toàn bộ dãy con chưa sắp xếp ban đầu.
  • B. Nó là phần tử lớn nhất trong toàn bộ dãy con chưa sắp xếp ban đầu.
  • C. Nó là phần tử ngẫu nhiên.
  • D. Nó là phần tử cuối cùng của danh sách gốc.

Câu 24: Xét danh sách `[7, 1, 5, 12, 3]`. Áp dụng thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần. Sau khi hoàn thành việc chèn phần tử `12` vào đúng vị trí, danh sách sẽ trông như thế nào?

  • A. `[1, 5, 7, 3, 12]`
  • B. `[1, 3, 5, 7, 12]`
  • C. `[1, 5, 7, 12, 3]`
  • D. `[7, 1, 5, 12, 3]`

Câu 25: Đâu là sự khác biệt cơ bản trong cách hai thuật toán sắp xếp đơn giản (chèn và chọn) xây dựng phần danh sách đã sắp xếp?

  • A. Sắp xếp chèn luôn sắp xếp tăng dần, còn sắp xếp chọn luôn giảm dần.
  • B. Sắp xếp chèn mở rộng phần đã sắp xếp bằng cách chèn phần tử mới vào đúng vị trí; Sắp xếp chọn mở rộng phần đã sắp xếp bằng cách thêm phần tử "tốt nhất" từ phần chưa sắp xếp vào cuối nó.
  • C. Sắp xếp chèn hiệu quả hơn với danh sách lớn, còn sắp xếp chọn hiệu quả hơn với danh sách nhỏ.
  • D. Sắp xếp chèn sử dụng hoán đổi, còn sắp xếp chọn sử dụng dịch chuyển.

Câu 26: Khi nào thì thuật toán sắp xếp chọn (Selection Sort) có thể được coi là lựa chọn hợp lý hơn so với các thuật toán sắp xếp đơn giản khác như nổi bọt hoặc chèn, đặc biệt nếu chi phí của mỗi lần hoán đổi (swap) rất cao?

  • A. Khi số lần hoán đổi phần tử cần được giảm thiểu.
  • B. Khi danh sách đầu vào gần như đã được sắp xếp.
  • C. Khi cần sắp xếp dữ liệu lớn được lưu trữ ngoài bộ nhớ chính.
  • D. Khi cần đảm bảo tính ổn định (các phần tử bằng nhau giữ nguyên thứ tự tương đối).

Câu 27: Giả sử bạn cần viết một chương trình đọc danh sách tên học sinh từ tệp và sắp xếp theo thứ tự bảng chữ cái. Kiểu dữ liệu của các phần tử trong danh sách lúc này sẽ là gì sau khi đọc từ tệp?

  • A. Số nguyên (int)
  • B. Chuỗi (str)
  • C. Số thực (float)
  • D. Boolean (bool)

Câu 28: Xét danh sách `[9, 5, 2, 7]`. Áp dụng thuật toán sắp xếp chọn (Selection Sort) theo thứ tự giảm dần. Sau khi hoàn thành vòng lặp ngoài đầu tiên, danh sách sẽ trông như thế nào?

  • A. `[9, 5, 2, 7]`
  • B. `[9, 7, 5, 2]`
  • C. `[7, 5, 2, 9]`
  • D. `[2, 5, 7, 9]`

Câu 29: Trong mã giả hoặc mã Python của thuật toán sắp xếp chèn (Insertion Sort) tăng dần, vòng lặp bên trong (thường dùng `while` hoặc `for` lùi) có vai trò chính là gì?

  • A. Tìm phần tử nhỏ nhất trong phần chưa sắp xếp.
  • B. Thực hiện hoán đổi phần tử đầu tiên và cuối cùng.
  • C. Duyệt qua tất cả các phần tử trong danh sách.
  • D. Tìm vị trí thích hợp cho phần tử đang xét trong dãy con đã sắp xếp và thực hiện dịch chuyển các phần tử lớn hơn.

Câu 30: Khi cần sắp xếp một danh sách các đối tượng phức tạp (ví dụ: danh sách học sinh, mỗi học sinh là một đối tượng có tên, điểm, lớp...), làm thế nào để áp dụng các thuật toán sắp xếp như chèn hoặc chọn?

  • A. Cần định nghĩa tiêu chí so sánh giữa các đối tượng (ví dụ: so sánh dựa trên điểm số, tên,...) và áp dụng thuật toán sắp xếp dựa trên tiêu chí đó.
  • B. Các thuật toán này chỉ áp dụng được cho kiểu dữ liệu số đơn giản.
  • C. Phải chuyển đổi đối tượng thành chuỗi hoặc số trước khi sắp xếp.
  • D. Chỉ cần áp dụng trực tiếp thuật toán mà không cần thay đổi gì.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 1: Trong bài toán sắp xếp, mục đích chính của việc áp dụng thuật toán là gì?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 2: Khi thực hiện sắp xếp chèn (Insertion Sort) với danh sách `[5, 2, 8, 1, 9]` theo thứ tự tăng dần, sau khi phần tử `2` được chèn vào đúng vị trí trong phần đã sắp xếp, danh sách sẽ trông như thế nào?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 3: Trong thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần, tại sao cần dịch chuyển các phần tử lớn hơn giá trị đang xét sang phải?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 4: Khi thực hiện sắp xếp chọn (Selection Sort) với danh sách `[5, 2, 8, 1, 9]` theo thứ tự tăng dần, sau vòng lặp ngoài đầu tiên (tìm và đặt phần tử nhỏ nhất vào vị trí đầu tiên), danh sách sẽ trông như thế nào?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 5: Trong thuật toán sắp xếp chọn (Selection Sort), biến được dùng để lưu chỉ số của phần tử nhỏ nhất (hoặc lớn nhất) trong dãy con chưa sắp xếp có vai trò gì?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 6: Giả sử bạn có một danh sách dữ liệu 'điểm thi' được đọc từ tệp văn bản, mỗi dòng là một điểm. Dòng lệnh Python nào sau đây thường được sử dụng để thêm một điểm đọc được từ biến `line` (dạng chuỗi) vào danh sách `diem_ds`?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 7: Khi nào thì thuật toán sắp xếp chèn (Insertion Sort) có thể hoạt động hiệu quả hơn thuật toán sắp xếp chọn (Selection Sort) trên thực tế, đặc biệt với các danh sách có kích thước không quá lớn?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 8: Để sắp xếp một danh sách theo thứ tự giảm dần bằng thuật toán sắp xếp chọn (Selection Sort), trong mỗi bước lặp chính, chúng ta cần tìm phần tử nào trong dãy con chưa sắp xếp?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 9: Xét danh sách `[3, 1, 4, 1, 5, 9, 2, 6]`. Sau khi áp dụng thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần và hoàn thành việc chèn phần tử `4` vào đúng vị trí, danh sách sẽ trông như thế nào?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 10: Một trong những nhược điểm chính của thuật toán sắp xếp nổi bọt (Bubble Sort) so với sắp xếp chèn hoặc sắp xếp chọn, đặc biệt với các danh sách lớn, là gì?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 11: Trong đoạn mã Python thực hiện sắp xếp chọn (Selection Sort), việc sử dụng biến tạm (ví dụ: `temp`) khi hoán đổi giá trị giữa hai vị trí `i` và `j` trong danh sách `arr` (`temp = arr[i]; arr[i] = arr[j]; arr[j] = temp`) là cần thiết vì:

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 12: Khi đọc dữ liệu số từ một tệp văn bản trong Python, mỗi dòng là một số dưới dạng chuỗi. Để có thể thực hiện các phép so sánh số học trong thuật toán sắp xếp, bạn cần thực hiện bước xử lý nào với dữ liệu đọc được?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 13: Xét danh sách `[8, 4, 6, 2]`. Áp dụng thuật toán sắp xếp chọn (Selection Sort) theo thứ tự tăng dần. Sau khi hoàn thành vòng lặp ngoài thứ hai, danh sách sẽ trông như thế nào?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 14: Trong thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần, phần tử đang xét (`key`) được so sánh với các phần tử trong dãy con đã sắp xếp theo trình tự nào?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 15: Khi triển khai thuật toán sắp xếp chèn hoặc sắp xếp chọn trong Python, danh sách dữ liệu thường được lưu trữ trong cấu trúc dữ liệu nào?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 16: Xét một đoạn mã Python thực hiện bước dịch chuyển trong sắp xếp chèn (tăng dần):
`while j > 0 and arr[j-1] > key:`
` arr[j] = arr[j-1]`
` j -= 1`
Biến `key` trong đoạn mã này đại diện cho điều gì?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 17: Để sắp xếp điểm trung bình môn Tin học của học sinh theo thứ tự giảm dần, thuật toán sắp xếp chọn (Selection Sort) sẽ hoạt động như thế nào trong mỗi bước lặp chính?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 18: Xét danh sách `[10, 5, 15, 2]`. Sau khi áp dụng thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần và hoàn thành việc chèn phần tử `15` vào đúng vị trí, danh sách sẽ trông như thế nào?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 19: Thuật toán sắp xếp nào sau đây chia danh sách thành hai phần: một phần đã sắp xếp và một phần chưa sắp xếp, và ở mỗi bước lặp, nó chọn phần tử 'tốt nhất' (nhỏ nhất hoặc lớn nhất) từ phần chưa sắp xếp để đưa về cuối phần đã sắp xếp?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 20: Khi sử dụng thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp một danh sách theo thứ tự tăng dần, điều gì xảy ra nếu phần tử đang xét nhỏ hơn tất cả các phần tử trong dãy con đã sắp xếp?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 21: Nhiệm vụ thực hành yêu cầu đọc dữ liệu từ tệp 'kho.inp' để sắp xếp số lượng mặt hàng. Giả sử tệp 'kho.inp' không tồn tại, điều gì sẽ xảy ra khi chạy chương trình?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 22: Xét đoạn mã Python để hoán đổi giá trị của `a` và `b` mà không dùng biến tạm:
`a = a + b`
`b = a - b`
`a = a - b`
Nếu ban đầu `a = 5`, `b = 10`, sau khi thực hiện đoạn mã này, giá trị mới của `a` và `b` là bao nhiêu?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 23: Trong thuật toán sắp xếp chọn (Selection Sort) theo thứ tự tăng dần, sau mỗi lần lặp của vòng lặp ngoài, điều gì chắc chắn đúng về phần tử tại vị trí đầu tiên của dãy con chưa sắp xếp?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 24: Xét danh sách `[7, 1, 5, 12, 3]`. Áp dụng thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần. Sau khi hoàn thành việc chèn phần tử `12` vào đúng vị trí, danh sách sẽ trông như thế nào?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 25: Đâu là sự khác biệt cơ bản trong *cách* hai thuật toán sắp xếp đơn giản (chèn và chọn) xây dựng phần danh sách đã sắp xếp?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 26: Khi nào thì thuật toán sắp xếp chọn (Selection Sort) có thể được coi là lựa chọn hợp lý hơn so với các thuật toán sắp xếp đơn giản khác như nổi bọt hoặc chèn, đặc biệt nếu chi phí của mỗi lần hoán đổi (swap) rất cao?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 27: Giả sử bạn cần viết một chương trình đọc danh sách tên học sinh từ tệp và sắp xếp theo thứ tự bảng chữ cái. Kiểu dữ liệu của các phần tử trong danh sách lúc này sẽ là gì sau khi đọc từ tệp?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 28: Xét danh sách `[9, 5, 2, 7]`. Áp dụng thuật toán sắp xếp chọn (Selection Sort) theo thứ tự giảm dần. Sau khi hoàn thành vòng lặp ngoài đầu tiên, danh sách sẽ trông như thế nào?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 29: Trong mã giả hoặc mã Python của thuật toán sắp xếp chèn (Insertion Sort) tăng dần, vòng lặp bên trong (thường dùng `while` hoặc `for` lùi) có vai trò chính là gì?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 07

Câu 30: Khi cần sắp xếp một danh sách các đối tượng phức tạp (ví dụ: danh sách học sinh, mỗi học sinh là một đối tượng có tên, điểm, lớp...), làm thế nào để áp dụng các thuật toán sắp xếp như chèn hoặc chọn?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 08

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 08 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Trong thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp danh sách theo thứ tự tăng dần, khi xem xét một phần tử hiện tại, chúng ta cần so sánh nó với các phần tử trong phần danh sách đã được sắp xếp. Hướng so sánh này diễn ra như thế nào?

  • A. Từ đầu danh sách đã sắp xếp đến cuối.
  • B. Từ cuối danh sách đã sắp xếp lùi về đầu.
  • C. Chỉ so sánh với phần tử đứng ngay trước nó.
  • D. So sánh ngẫu nhiên với bất kỳ phần tử nào trong danh sách đã sắp xếp.

Câu 2: Giả sử bạn có danh sách `[6, 3, 8, 1, 5]` và áp dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp tăng dần. Sau khi hoàn thành vòng lặp ngoài đầu tiên (tức là phần tử nhỏ nhất đã được đưa về vị trí đầu tiên), danh sách sẽ ở trạng thái nào?

  • A. [1, 3, 8, 6, 5]
  • B. [1, 6, 8, 3, 5]
  • C. [1, 3, 8, 6, 5]
  • D. [6, 3, 8, 1, 5]

Câu 3: Điểm khác biệt cơ bản trong cách hoạt động của thuật toán sắp xếp chèn (Insertion Sort) so với thuật toán sắp xếp chọn (Selection Sort) là gì?

  • A. Sắp xếp chèn di chuyển các phần tử để tạo chỗ trống, còn sắp xếp chọn thực hiện hoán đổi.
  • B. Sắp xếp chèn tìm phần tử nhỏ nhất/lớn nhất, còn sắp xếp chọn chèn từng phần tử vào đúng vị trí.
  • C. Sắp xếp chèn hiệu quả với danh sách lớn, còn sắp xếp chọn hiệu quả với danh sách nhỏ.
  • D. Sắp xếp chèn chỉ dùng cho số nguyên, còn sắp xếp chọn dùng cho mọi loại dữ liệu.

Câu 4: Bạn cần sắp xếp một danh sách gồm 1000 bản ghi thông tin sản phẩm dựa trên mã sản phẩm theo thứ tự tăng dần. Mã sản phẩm thường được nhập theo thứ tự tương đối, tức là danh sách ban đầu có thể đã gần được sắp xếp. Trong trường hợp này, thuật toán nào trong số các thuật toán đơn giản (Chèn, Chọn, Nổi bọt) có khả năng cho hiệu suất tốt nhất?

  • A. Sắp xếp chèn (Insertion Sort).
  • B. Sắp xếp chọn (Selection Sort).
  • C. Sắp xếp nổi bọt (Bubble Sort).
  • D. Cả ba thuật toán đều có hiệu suất như nhau trong trường hợp này.

Câu 5: Trong mã giả hoặc mã Python của thuật toán sắp xếp chèn, đoạn code thực hiện việc dịch chuyển các phần tử trong dãy con đã sắp xếp để tạo chỗ trống cho phần tử hiện tại có mục đích gì?

  • A. Để tìm vị trí của phần tử nhỏ nhất trong dãy chưa sắp xếp.
  • B. Để so sánh phần tử hiện tại với tất cả các phần tử khác.
  • C. Để đảm bảo các phần tử lớn hơn phần tử hiện tại được dời sang phải, giữ cho dãy con đã sắp xếp đúng thứ tự.
  • D. Để đếm số lần hoán đổi diễn ra.

Câu 6: Trong thuật toán sắp xếp chọn (Selection Sort) để sắp xếp giảm dần, vòng lặp bên trong (inner loop) có nhiệm vụ chính là gì?

  • A. Dịch chuyển các phần tử lớn hơn sang phải.
  • B. Chèn phần tử hiện tại vào đúng vị trí trong dãy đã sắp xếp.
  • C. So sánh hai phần tử liền kề và hoán đổi nếu sai thứ tự.
  • D. Tìm chỉ số (vị trí) của phần tử có giá trị lớn nhất trong phần danh sách chưa được sắp xếp còn lại.

Câu 7: Khi thực hiện sắp xếp chèn (Insertion Sort) trên danh sách `[4, 1, 7, 2]` theo thứ tự tăng dần, sau khi phần tử `1` được chèn vào đúng vị trí trong dãy con đã sắp xếp `[4]`, danh sách sẽ trở thành?

  • A. [4, 1, 7, 2]
  • B. [4, 7, 1, 2]
  • C. [1, 4, 7, 2]
  • D. [1, 2, 4, 7]

Câu 8: Bạn có một danh sách điểm số học sinh cần sắp xếp giảm dần. Thuật toán sắp xếp chọn (Selection Sort) sẽ hoạt động bằng cách lặp lại việc gì ở mỗi bước?

  • A. Tìm điểm nhỏ nhất trong phần chưa sắp xếp và đưa về cuối danh sách.
  • B. Tìm điểm lớn nhất trong phần chưa sắp xếp và đưa về đầu phần chưa sắp xếp đó.
  • C. So sánh hai điểm liền kề và đổi chỗ nếu điểm sau lớn hơn điểm trước.
  • D. Chèn điểm hiện tại vào đúng vị trí trong danh sách điểm đã sắp xếp.

Câu 9: Trong bài toán thực hành, việc đọc dữ liệu số lượng mặt hàng từ tệp văn bản (ví dụ: `kho.inp`) thường yêu cầu xử lý gì đối với mỗi dòng đọc được trước khi thêm vào danh sách số nguyên?

  • A. Chuyển đổi từ chuỗi sang số nguyên và loại bỏ ký tự xuống dòng (newline).
  • B. Chỉ cần thêm trực tiếp chuỗi đọc được vào danh sách.
  • C. Kiểm tra xem dòng đó có phải là số chẵn hay không.
  • D. Chia dòng đó thành các từ riêng biệt.

Câu 10: Giả sử bạn có danh sách `[5, 2, 8, 1]` và áp dụng thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần. Sau khi phần tử `8` được xem xét và chèn vào đúng vị trí, danh sách sẽ ở trạng thái nào?

  • A. [1, 2, 5, 8]
  • B. [2, 5, 8, 1]
  • C. [5, 2, 8, 1]
  • D. [2, 5, 8, 1]

Câu 11: Mục đích của việc sử dụng biến tạm (ví dụ: `temp` hoặc `key`) để lưu trữ giá trị của phần tử hiện tại trong thuật toán sắp xếp chèn là gì?

  • A. Để so sánh nó với phần tử lớn nhất trong danh sách.
  • B. Để giá trị đó không bị mất đi khi các phần tử khác bị dịch chuyển để tạo chỗ trống.
  • C. Để đếm số lần phần tử đó được so sánh.
  • D. Để đánh dấu rằng phần tử này đã được sắp xếp.

Câu 12: Trong thuật toán sắp xếp chọn (Selection Sort) để sắp xếp tăng dần, sau khi tìm thấy chỉ số của phần tử nhỏ nhất trong phần chưa sắp xếp, thao tác tiếp theo luôn là gì?

  • A. Hoán đổi phần tử nhỏ nhất đó với phần tử ở vị trí đầu tiên của phần chưa sắp xếp.
  • B. Dịch chuyển phần tử nhỏ nhất đó về đầu danh sách.
  • C. Xóa phần tử nhỏ nhất đó khỏi danh sách.
  • D. Chèn phần tử nhỏ nhất đó vào cuối danh sách.

Câu 13: Khi so sánh thuật toán sắp xếp chèn và sắp xếp chọn trên một danh sách ngẫu nhiên có kích thước vừa phải (ví dụ 100 phần tử), nhận xét nào sau đây thường đúng về số lượng phép hoán đổi (swap)?

  • A. Sắp xếp chèn thực hiện ít phép hoán đổi hơn sắp xếp chọn.
  • B. Sắp xếp chọn thực hiện ít phép hoán đổi hơn sắp xếp chèn.
  • C. Cả hai thuật toán thực hiện số phép hoán đổi tương đương nhau.
  • D. Số phép hoán đổi chỉ phụ thuộc vào dữ liệu đầu vào, không phụ thuộc thuật toán.

Câu 14: Đoạn mã Python `danh_sach[i], danh_sach[min_idx] = danh_sach[min_idx], danh_sach[i]` thường xuất hiện trong thuật toán sắp xếp nào và có ý nghĩa gì?

  • A. Sắp xếp chèn, dùng để dịch chuyển phần tử sang phải.
  • B. Sắp xếp chèn, dùng để chèn phần tử vào đúng vị trí.
  • C. Sắp xếp chọn, dùng để hoán đổi phần tử nhỏ nhất/lớn nhất về đúng vị trí.
  • D. Sắp xếp nổi bọt, dùng để so sánh hai phần tử liền kề.

Câu 15: Trong thuật toán sắp xếp chèn, khi tìm vị trí thích hợp cho phần tử `x` trong dãy con đã sắp xếp, các phần tử lớn hơn `x` được dịch chuyển sang phải. Điều này tạo ra một "lỗ trống". "Lỗ trống" này cuối cùng được lấp đầy bởi phần tử nào?

  • A. Phần tử nhỏ nhất trong dãy chưa sắp xếp.
  • B. Phần tử đầu tiên của dãy ban đầu.
  • C. Phần tử cuối cùng của dãy ban đầu.
  • D. Chính phần tử `x` đang được xem xét.

Câu 16: Bạn cần viết chương trình Python để đọc danh sách các số nguyên từ một tệp, sắp xếp chúng theo thứ tự tăng dần bằng thuật toán sắp xếp chèn và in kết quả ra màn hình. Bước nào sau đây là không cần thiết?

  • A. Mở tệp văn bản để đọc dữ liệu.
  • B. Tìm phần tử lớn nhất trong danh sách sau mỗi lần chèn.
  • C. Chuyển đổi dữ liệu đọc từ tệp sang kiểu số nguyên.
  • D. Lặp qua danh sách để chèn từng phần tử vào dãy đã sắp xếp.

Câu 17: Thuật toán sắp xếp chọn (Selection Sort) được gọi như vậy bởi vì ở mỗi bước, nó thực hiện hành động chính là gì?

  • A. Chọn (tìm) phần tử nhỏ nhất (hoặc lớn nhất) trong phần chưa sắp xếp.
  • B. Chọn một vị trí để chèn phần tử hiện tại.
  • C. Chọn hai phần tử liền kề để so sánh.
  • D. Chọn ngẫu nhiên một phần tử để đưa về đầu danh sách.

Câu 18: Khi cài đặt thuật toán sắp xếp chèn hoặc sắp xếp chọn trong Python, cấu trúc dữ liệu phù hợp nhất để lưu trữ danh sách các phần tử cần sắp xếp là gì?

  • A. Tuple.
  • B. Set.
  • C. List.
  • D. Dictionary.

Câu 19: Giả sử bạn có danh sách `[7, 2, 5, 1]` và áp dụng thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần. Sau khi phần tử `2` được chèn vào đúng vị trí, danh sách sẽ trở thành?

  • A. [7, 2, 5, 1]
  • B. [2, 7, 5, 1]
  • C. [2, 5, 7, 1]
  • D. [1, 2, 5, 7]

Câu 20: Trong thuật toán sắp xếp chọn (Selection Sort), vòng lặp ngoài (outer loop) có nhiệm vụ chính là gì?

  • A. Duyệt qua từng cặp phần tử liền kề để hoán đổi.
  • B. Dịch chuyển các phần tử sang phải để tạo chỗ trống.
  • C. Tìm vị trí thích hợp để chèn phần tử hiện tại.
  • D. Xác định vị trí hiện tại cần đặt phần tử nhỏ nhất (hoặc lớn nhất) tiếp theo.

Câu 21: Khi viết mã Python để đọc dữ liệu số từ tệp, nếu mỗi số nằm trên một dòng riêng biệt, phương thức nào của đối tượng tệp (file object) thường được dùng để đọc tất cả các dòng vào một danh sách các chuỗi?

  • A. `read()`
  • B. `readline()`
  • C. `readlines()`
  • D. `close()`

Câu 22: Giả sử bạn có danh sách `[9, 2, 7, 5]` và áp dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp giảm dần. Sau khi hoàn thành vòng lặp ngoài đầu tiên (tức là phần tử lớn nhất đã được đưa về vị trí đầu tiên), danh sách sẽ ở trạng thái nào?

  • A. [9, 2, 7, 5]
  • B. [2, 9, 7, 5]
  • C. [9, 7, 5, 2]
  • D. [2, 5, 7, 9]

Câu 23: Trong thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần, phần "dãy con đã sắp xếp" ban đầu bao gồm bao nhiêu phần tử?

  • A. Không có phần tử nào.
  • B. Một phần tử đầu tiên của danh sách.
  • C. Tất cả các phần tử của danh sách.
  • D. Hai phần tử đầu tiên của danh sách.

Câu 24: Khi sử dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp một danh sách có N phần tử, số lượng phép hoán đổi (swap) tối đa có thể xảy ra là bao nhiêu?

  • A. N*(N-1)/2
  • B. N^2
  • C. N-1
  • D. N

Câu 25: Giả sử bạn cần sắp xếp danh sách `[10, 4, 7]` bằng thuật toán sắp xếp chèn tăng dần. Mô tả nào sau đây là chính xác về một bước trong quá trình sắp xếp này?

  • A. Tìm phần tử nhỏ nhất (1) và đưa về đầu danh sách.
  • B. So sánh 10 và 4, sau đó hoán đổi chúng.
  • C. Tìm phần tử lớn nhất (10) và đưa về cuối danh sách.
  • D. Khi xem xét phần tử 7, nó được chèn vào giữa 4 và 10 trong dãy con đã sắp xếp [4, 10].

Câu 26: Trong thuật toán sắp xếp chọn (Selection Sort), phần "dãy con chưa sắp xếp" là phần nào của danh sách?

  • A. Phần còn lại của danh sách kể từ vị trí hiện tại của vòng lặp ngoài trở đi.
  • B. Phần đầu tiên của danh sách đã được sắp xếp.
  • C. Toàn bộ danh sách ban đầu.
  • D. Chỉ phần tử cuối cùng của danh sách.

Câu 27: Bạn đang xây dựng một ứng dụng quản lý điểm và cần hiển thị danh sách điểm trung bình của học sinh theo thứ tự từ cao đến thấp. Thuật toán sắp xếp chọn (Selection Sort) có thể được điều chỉnh để thực hiện việc này bằng cách nào?

  • A. Tìm phần tử nhỏ nhất trong phần chưa sắp xếp và đưa về cuối danh sách.
  • B. Tìm phần tử nhỏ nhất trong phần chưa sắp xếp và đưa về đầu danh sách.
  • C. Tìm phần tử lớn nhất trong phần chưa sắp xếp và đưa về đầu phần chưa sắp xếp.
  • D. Chèn từng phần tử vào đúng vị trí trong danh sách đã sắp xếp theo thứ tự tăng dần, sau đó đảo ngược danh sách.

Câu 28: Khi đọc dữ liệu từ tệp trong Python, tại sao nên sử dụng cấu trúc `with open(...) as f:`?

  • A. Để đảm bảo tệp tự động đóng lại sau khi hoàn thành, ngay cả khi có lỗi xảy ra.
  • B. Để đọc tệp nhanh hơn.
  • C. Để chỉ đọc được tệp có định dạng .txt.
  • D. Để tự động chuyển đổi dữ liệu trong tệp sang số nguyên.

Câu 29: Giả sử bạn có danh sách `[3, 1, 4, 2]` và áp dụng thuật toán sắp xếp chèn tăng dần. Sau khi hoàn thành vòng lặp ngoài thứ hai (tức là phần tử thứ 3 của danh sách ban đầu - số 4 - đã được xem xét và chèn vào đúng vị trí), danh sách sẽ ở trạng thái nào?

  • A. [1, 2, 3, 4]
  • B. [1, 3, 4, 2]
  • C. [3, 1, 4, 2]
  • D. [1, 3, 4, 2]

Câu 30: Trong bối cảnh quản lý dữ liệu, nếu bạn thường xuyên cần thêm các mục mới vào một danh sách đã được sắp xếp và muốn duy trì trật tự đã sắp xếp một cách hiệu quả nhất cho mỗi lần thêm một mục, khái niệm cốt lõi nào của thuật toán sắp xếp chèn là phù hợp nhất để áp dụng?

  • A. Tìm phần tử nhỏ nhất trong phần còn lại.
  • B. Chèn một phần tử vào đúng vị trí trong một dãy đã sắp xếp.
  • C. Hoán đổi các phần tử liền kề nếu sai thứ tự.
  • D. Phân chia danh sách thành các danh sách con nhỏ hơn.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 1: Trong thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp danh sách theo thứ tự tăng dần, khi xem xét một phần tử hiện tại, chúng ta cần so sánh nó với các phần tử trong phần danh sách đã được sắp xếp. Hướng so sánh này diễn ra như thế nào?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 2: Giả sử bạn có danh sách `[6, 3, 8, 1, 5]` và áp dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp tăng dần. Sau khi hoàn thành *vòng lặp ngoài đầu tiên* (tức là phần tử nhỏ nhất đã được đưa về vị trí đầu tiên), danh sách sẽ ở trạng thái nào?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 3: Điểm khác biệt cơ bản trong cách hoạt động của thuật toán sắp xếp chèn (Insertion Sort) so với thuật toán sắp xếp chọn (Selection Sort) là gì?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 4: Bạn cần sắp xếp một danh sách gồm 1000 bản ghi thông tin sản phẩm dựa trên mã sản phẩm theo thứ tự tăng dần. Mã sản phẩm thường được nhập theo thứ tự tương đối, tức là danh sách ban đầu có thể đã gần được sắp xếp. Trong trường hợp này, thuật toán nào trong số các thuật toán đơn giản (Chèn, Chọn, Nổi bọt) có khả năng cho hiệu suất tốt nhất?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 5: Trong mã giả hoặc mã Python của thuật toán sắp xếp chèn, đoạn code thực hiện việc dịch chuyển các phần tử trong dãy con đã sắp xếp để tạo chỗ trống cho phần tử hiện tại có mục đích gì?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 6: Trong thuật toán sắp xếp chọn (Selection Sort) để sắp xếp giảm dần, vòng lặp bên trong (inner loop) có nhiệm vụ chính là gì?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 7: Khi thực hiện sắp xếp chèn (Insertion Sort) trên danh sách `[4, 1, 7, 2]` theo thứ tự tăng dần, sau khi phần tử `1` được chèn vào đúng vị trí trong dãy con đã sắp xếp `[4]`, danh sách sẽ trở thành?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 8: Bạn có một danh sách điểm số học sinh cần sắp xếp giảm dần. Thuật toán sắp xếp chọn (Selection Sort) sẽ hoạt động bằng cách lặp lại việc gì ở mỗi bước?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 9: Trong bài toán thực hành, việc đọc dữ liệu số lượng mặt hàng từ tệp văn bản (ví dụ: `kho.inp`) thường yêu cầu xử lý gì đối với mỗi dòng đọc được trước khi thêm vào danh sách số nguyên?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 10: Giả sử bạn có danh sách `[5, 2, 8, 1]` và áp dụng thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần. Sau khi phần tử `8` được xem xét và chèn vào đúng vị trí, danh sách sẽ ở trạng thái nào?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 11: Mục đích của việc sử dụng biến tạm (ví dụ: `temp` hoặc `key`) để lưu trữ giá trị của phần tử hiện tại trong thuật toán sắp xếp chèn là gì?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 12: Trong thuật toán sắp xếp chọn (Selection Sort) để sắp xếp tăng dần, sau khi tìm thấy chỉ số của phần tử nhỏ nhất trong phần chưa sắp xếp, thao tác tiếp theo luôn là gì?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 13: Khi so sánh thuật toán sắp xếp chèn và sắp xếp chọn trên một danh sách ngẫu nhiên có kích thước vừa phải (ví dụ 100 phần tử), nhận xét nào sau đây thường đúng về số lượng phép hoán đổi (swap)?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 14: Đoạn mã Python `danh_sach[i], danh_sach[min_idx] = danh_sach[min_idx], danh_sach[i]` thường xuất hiện trong thuật toán sắp xếp nào và có ý nghĩa gì?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 15: Trong thuật toán sắp xếp chèn, khi tìm vị trí thích hợp cho phần tử `x` trong dãy con đã sắp xếp, các phần tử lớn hơn `x` được dịch chuyển sang phải. Điều này tạo ra một 'lỗ trống'. 'Lỗ trống' này cuối cùng được lấp đầy bởi phần tử nào?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 16: Bạn cần viết chương trình Python để đọc danh sách các số nguyên từ một tệp, sắp xếp chúng theo thứ tự tăng dần bằng thuật toán sắp xếp chèn và in kết quả ra màn hình. Bước nào sau đây là *không* cần thiết?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 17: Thuật toán sắp xếp chọn (Selection Sort) được gọi như vậy bởi vì ở mỗi bước, nó thực hiện hành động chính là gì?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 18: Khi cài đặt thuật toán sắp xếp chèn hoặc sắp xếp chọn trong Python, cấu trúc dữ liệu phù hợp nhất để lưu trữ danh sách các phần tử cần sắp xếp là gì?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 19: Giả sử bạn có danh sách `[7, 2, 5, 1]` và áp dụng thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần. Sau khi phần tử `2` được chèn vào đúng vị trí, danh sách sẽ trở thành?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 20: Trong thuật toán sắp xếp chọn (Selection Sort), vòng lặp ngoài (outer loop) có nhiệm vụ chính là gì?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 21: Khi viết mã Python để đọc dữ liệu số từ tệp, nếu mỗi số nằm trên một dòng riêng biệt, phương thức nào của đối tượng tệp (file object) thường được dùng để đọc tất cả các dòng vào một danh sách các chuỗi?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 22: Giả sử bạn có danh sách `[9, 2, 7, 5]` và áp dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp giảm dần. Sau khi hoàn thành *vòng lặp ngoài đầu tiên* (tức là phần tử lớn nhất đã được đưa về vị trí đầu tiên), danh sách sẽ ở trạng thái nào?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 23: Trong thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần, phần 'dãy con đã sắp xếp' ban đầu bao gồm bao nhiêu phần tử?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 24: Khi sử dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp một danh sách có N phần tử, số lượng phép hoán đổi (swap) tối đa có thể xảy ra là bao nhiêu?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 25: Giả sử bạn cần sắp xếp danh sách `[10, 4, 7]` bằng thuật toán sắp xếp chèn tăng dần. Mô tả nào sau đây là chính xác về một bước trong quá trình sắp xếp này?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 26: Trong thuật toán sắp xếp chọn (Selection Sort), phần 'dãy con chưa sắp xếp' là phần nào của danh sách?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 27: Bạn đang xây dựng một ứng dụng quản lý điểm và cần hiển thị danh sách điểm trung bình của học sinh theo thứ tự từ cao đến thấp. Thuật toán sắp xếp chọn (Selection Sort) có thể được điều chỉnh để thực hiện việc này bằng cách nào?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 28: Khi đọc dữ liệu từ tệp trong Python, tại sao nên sử dụng cấu trúc `with open(...) as f:`?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 29: Giả sử bạn có danh sách `[3, 1, 4, 2]` và áp dụng thuật toán sắp xếp chèn tăng dần. Sau khi hoàn thành *vòng lặp ngoài thứ hai* (tức là phần tử thứ 3 của danh sách ban đầu - số 4 - đã được xem xét và chèn vào đúng vị trí), danh sách sẽ ở trạng thái nào?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 08

Câu 30: Trong bối cảnh quản lý dữ liệu, nếu bạn thường xuyên cần thêm các mục mới vào một danh sách đã được sắp xếp và muốn duy trì trật tự đã sắp xếp một cách hiệu quả nhất cho mỗi lần thêm một mục, khái niệm cốt lõi nào của thuật toán sắp xếp chèn là phù hợp nhất để áp dụng?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 09

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 09 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Khi cần sắp xếp một danh sách dữ liệu mà các phần tử mới thường xuyên được thêm vào cuối danh sách đã sắp xếp, thuật toán sắp xếp nào sau đây thường được xem xét là hiệu quả hơn trong việc duy trì trật tự?

  • A. Thuật toán sắp xếp chọn (Selection Sort)
  • B. Thuật toán nổi bọt (Bubble Sort)
  • C. Thuật toán sắp xếp chèn (Insertion Sort)
  • D. Cả ba thuật toán đều có hiệu quả tương đương trong trường hợp này.

Câu 2: Giả sử bạn sử dụng thuật toán sắp xếp chọn để sắp xếp một danh sách gồm 5 số theo thứ tự tăng dần: [15, 8, 20, 5, 12]. Sau vòng lặp đầu tiên (tìm phần tử nhỏ nhất và đưa về vị trí đầu tiên), danh sách sẽ trông như thế nào?

  • A. [8, 15, 20, 5, 12]
  • B. [5, 8, 12, 15, 20]
  • C. [15, 8, 20, 5, 12] (Không thay đổi)
  • D. [5, 8, 20, 15, 12]

Câu 3: Trong thuật toán sắp xếp chèn, mục đích chính của việc dịch chuyển các phần tử sang phải trong phần danh sách đã sắp xếp là gì?

  • A. Để tìm phần tử lớn nhất trong phần chưa sắp xếp.
  • B. Để tạo chỗ trống cho phần tử hiện tại được chèn vào đúng vị trí.
  • C. Để đếm số lần so sánh đã thực hiện.
  • D. Để hoán đổi phần tử hiện tại với phần tử đầu tiên của danh sách.

Câu 4: Một giáo viên muốn sắp xếp danh sách điểm của học sinh theo thứ tự giảm dần để tìm ra các bạn có điểm cao nhất. Thuật toán sắp xếp chọn hoạt động như thế nào để đạt được mục tiêu này?

  • A. Tìm phần tử lớn nhất trong phần chưa sắp xếp và đặt nó vào vị trí đầu tiên của phần chưa sắp xếp (tức là vị trí cuối cùng của phần đã sắp xếp).
  • B. Tìm phần tử nhỏ nhất trong phần chưa sắp xếp và đặt nó vào vị trí đầu tiên của phần chưa sắp xếp.
  • C. So sánh từng cặp phần tử liền kề và hoán đổi nếu chúng không đúng thứ tự giảm dần.
  • D. Chèn từng phần tử vào đúng vị trí trong phần danh sách đã sắp xếp theo thứ tự giảm dần.

Câu 5: Giả sử bạn có danh sách [7, 3, 9, 2]. Bạn sử dụng thuật toán sắp xếp chèn để sắp xếp tăng dần. Sau khi xử lý phần tử thứ hai (số 3), danh sách sẽ trông như thế nào?

  • A. [3, 7, 9, 2]
  • B. [7, 3, 9, 2]
  • C. [3, 7, 9, 2]
  • D. [2, 3, 7, 9]

Câu 6: Khi nào thì thuật toán sắp xếp chèn thể hiện hiệu quả tốt nhất (về số lần so sánh và di chuyển) so với các trường hợp khác?

  • A. Khi danh sách đầu vào gần như đã được sắp xếp.
  • B. Khi danh sách đầu vào được sắp xếp theo thứ tự ngược lại.
  • C. Khi danh sách đầu vào chứa các phần tử trùng lặp rất nhiều.
  • D. Khi danh sách đầu vào có kích thước rất lớn.

Câu 7: Trong thuật toán sắp xếp chọn, tại sao chúng ta cần một biến để lưu trữ chỉ số (index) của phần tử nhỏ nhất (hoặc lớn nhất) trong phần chưa sắp xếp, thay vì chỉ lưu giá trị của nó?

  • A. Để so sánh giá trị này với các phần tử khác dễ dàng hơn.
  • B. Để biết số lần phần tử đó xuất hiện trong danh sách.
  • C. Để tránh nhầm lẫn giữa giá trị và chỉ số.
  • D. Để có thể thực hiện hoán đổi (swap) phần tử tại chỉ số đó với phần tử ở vị trí đầu tiên của phần chưa sắp xếp.

Câu 8: Một cửa hàng cần sắp xếp danh sách các sản phẩm tồn kho dựa trên số lượng từ ít nhất đến nhiều nhất. Dữ liệu được đọc từ một tệp văn bản, mỗi dòng chứa số lượng của một loại sản phẩm. Sau khi đọc dữ liệu vào một danh sách trong Python, bước tiếp theo cần làm gì để chuẩn bị cho việc sắp xếp?

  • A. In ngay danh sách ra màn hình.
  • B. Lưu danh sách vào một tệp văn bản khác.
  • C. Chuyển đổi dữ liệu đọc được (thường là chuỗi) sang kiểu số nguyên hoặc số thực nếu cần và lưu vào danh sách.
  • D. Xóa các phần tử trùng lặp trong danh sách.

Câu 9: Giả sử bạn có danh sách [10, 4, 6, 1]. Bạn sử dụng thuật toán sắp xếp chọn để sắp xếp tăng dần. Sau khi hoàn thành vòng lặp thứ hai (đưa phần tử nhỏ thứ hai về vị trí thứ hai), danh sách sẽ trông như thế nào?

  • A. [1, 4, 10, 6]
  • B. [1, 4, 6, 10]
  • C. [1, 10, 4, 6]
  • D. [10, 1, 4, 6]

Câu 10: Điểm khác biệt cốt lõi trong cách xây dựng phần danh sách đã sắp xếp giữa thuật toán sắp xếp chèn và thuật toán sắp xếp chọn là gì?

  • A. Sắp xếp chèn xây dựng phần đã sắp xếp từ cuối về đầu, còn sắp xếp chọn xây dựng từ đầu về cuối.
  • B. Sắp xếp chèn lấy từng phần tử từ phần chưa sắp xếp và chèn vào đúng vị trí trong phần đã sắp xếp; Sắp xếp chọn tìm phần tử nhỏ nhất/lớn nhất trong phần chưa sắp xếp và hoán đổi nó với phần tử đầu tiên của phần chưa sắp xếp.
  • C. Sắp xếp chèn chỉ sử dụng phép so sánh, còn sắp xếp chọn chỉ sử dụng phép hoán đổi.
  • D. Sắp xếp chèn hiệu quả với danh sách lớn, sắp xếp chọn hiệu quả với danh sách nhỏ.

Câu 11: Khi sắp xếp một danh sách theo thứ tự giảm dần bằng thuật toán sắp xếp chèn, bạn sẽ so sánh phần tử hiện tại với các phần tử trong phần đã sắp xếp như thế nào?

  • A. Nếu phần tử hiện tại lớn hơn phần tử trong phần đã sắp xếp, dịch chuyển phần tử trong phần đã sắp xếp sang phải.
  • B. Nếu phần tử hiện tại nhỏ hơn phần tử trong phần đã sắp xếp, dịch chuyển phần tử trong phần đã sắp xếp sang phải.
  • C. Nếu phần tử hiện tại bằng phần tử trong phần đã sắp xếp, dịch chuyển phần tử trong phần đã sắp xếp sang phải.
  • D. Nếu phần tử hiện tại lớn hơn phần tử trong phần đã sắp xếp, dừng việc dịch chuyển và chèn vào vị trí đó.

Câu 12: Giả sử bạn có danh sách [5, 2, 8, 1, 9]. Bạn sử dụng thuật toán sắp xếp chèn để sắp xếp tăng dần. Sau khi xử lý phần tử thứ ba (số 8), danh sách sẽ trông như thế nào?

  • A. [2, 5, 1, 8, 9]
  • B. [2, 5, 8, 1, 9]
  • C. [2, 5, 8, 1, 9]
  • D. [1, 2, 5, 8, 9]

Câu 13: Trong một chương trình Python thực hiện sắp xếp, việc đọc dữ liệu từ tệp sử dụng `open("ten_tep.txt", "r", encoding="utf8")` và sau đó dùng `readlines()` sẽ trả về kết quả là gì?

  • A. Một chuỗi duy nhất chứa toàn bộ nội dung tệp.
  • B. Một danh sách, trong đó mỗi phần tử là một chuỗi chứa nội dung của một dòng trong tệp (bao gồm cả ký tự xuống dòng "n" nếu có).
  • C. Một danh sách các số nguyên được chuyển đổi tự động từ nội dung tệp.
  • D. Một đối tượng tệp sẵn sàng để ghi dữ liệu.

Câu 14: Khi áp dụng thuật toán sắp xếp chọn để sắp xếp tăng dần một danh sách, sau mỗi lần hoàn thành vòng lặp ngoài, phần tử nào sẽ chắc chắn nằm đúng vị trí cuối cùng của nó trong danh sách đã sắp xếp?

  • A. Phần tử nhỏ nhất trong phần chưa sắp xếp.
  • B. Phần tử lớn nhất trong phần chưa sắp xếp.
  • C. Phần tử đầu tiên của danh sách ban đầu.
  • D. Phần tử được chọn ngẫu nhiên từ phần chưa sắp xếp.

Câu 15: Giả sử bạn có danh sách [40, 10, 30, 20]. Bạn sử dụng thuật toán sắp xếp chọn để sắp xếp giảm dần. Sau vòng lặp đầu tiên (đưa phần tử lớn nhất về vị trí đầu tiên), danh sách sẽ trông như thế nào?

  • A. [10, 40, 30, 20]
  • B. [10, 20, 30, 40]
  • C. [40, 10, 30, 20]
  • D. [40, 30, 20, 10]

Câu 16: Trong ngữ cảnh của bài toán thực hành, việc sắp xếp số lượng mặt hàng trong kho theo thứ tự tăng dần giúp ích gì cho người quản lý kho?

  • A. Giúp tìm kiếm một mặt hàng cụ thể nhanh hơn bằng tên.
  • B. Giúp dễ dàng nhận biết các mặt hàng có số lượng tồn kho thấp nhất hoặc cao nhất.
  • C. Giúp tính toán tổng giá trị của tất cả mặt hàng.
  • D. Giúp xác định ngày nhập kho của từng mặt hàng.

Câu 17: Khi cài đặt thuật toán sắp xếp chèn trong Python, vòng lặp bên ngoài thường dùng để làm gì?

  • A. Duyệt qua từng phần tử trong danh sách (bắt đầu từ phần tử thứ hai) để chuẩn bị chèn vào phần đã sắp xếp.
  • B. Tìm chỉ số của phần tử nhỏ nhất trong toàn bộ danh sách.
  • C. Thực hiện việc hoán đổi các phần tử liền kề.
  • D. Đếm số lượng phần tử trong danh sách.

Câu 18: Giả sử bạn có danh sách [A, C, B, D]. Bạn sử dụng thuật toán sắp xếp chèn để sắp xếp theo thứ tự bảng chữ cái tăng dần. Sau khi xử lý phần tử thứ ba (chữ "B"), danh sách sẽ trông như thế nào?

  • A. [A, C, B, D]
  • B. [A, B, C, D]
  • C. [A, B, C, D]
  • D. [B, A, C, D]

Câu 19: Trong thuật toán sắp xếp chọn để sắp xếp tăng dần, sau khi hoàn thành vòng lặp thứ `i`, phần tử tại vị trí `i` (bắt đầu từ 0) sẽ là gì?

  • A. Phần tử nhỏ nhất trong `i+1` phần tử đầu tiên của danh sách sau khi đã sắp xếp.
  • B. Phần tử lớn nhất trong phần còn lại chưa được sắp xếp.
  • C. Phần tử ban đầu ở vị trí `i`.
  • D. Phần tử được chọn ngẫu nhiên.

Câu 20: Một danh sách điểm [7.5, 9.0, 8.0, 6.5]. Sử dụng thuật toán sắp xếp chọn để sắp xếp giảm dần. Sau khi hoàn thành việc xử lý để đưa điểm cao nhất về vị trí đầu tiên, danh sách sẽ trông như thế nào?

  • A. [6.5, 7.5, 8.0, 9.0]
  • B. [9.0, 7.5, 8.0, 6.5]
  • C. [9.0, 8.0, 7.5, 6.5]
  • D. [7.5, 9.0, 8.0, 6.5]

Câu 21: Khi so sánh thuật toán sắp xếp chèn và sắp xếp chọn trên một danh sách có kích thước N, phát biểu nào sau đây là không chính xác?

  • A. Sắp xếp chọn có số lần hoán đổi ít hơn đáng kể so với sắp xếp chèn trong trường hợp xấu nhất.
  • B. Sắp xếp chèn có thể hiệu quả hơn sắp xếp chọn nếu danh sách gần như đã được sắp xếp.
  • C. Cả hai thuật toán đều có độ phức tạp thời gian trung bình và xấu nhất là O(N^2).
  • D. Sắp xếp chọn yêu cầu nhiều bộ nhớ phụ hơn sắp xếp chèn.

Câu 22: Giả sử bạn có danh sách [10, 20, 30, 40]. Nếu áp dụng thuật toán sắp xếp chèn để sắp xếp tăng dần, điều gì sẽ xảy ra trong quá trình thực hiện?

  • A. Vòng lặp bên trong (dịch chuyển) sẽ thực hiện rất ít hoặc không thực hiện dịch chuyển nào.
  • B. Thuật toán sẽ thực hiện số lần hoán đổi tối đa.
  • C. Thuật toán sẽ dừng lại ngay sau khi kiểm tra phần tử đầu tiên.
  • D. Thuật toán sẽ đảo ngược thứ tự của danh sách.

Câu 23: Trong thuật toán sắp xếp chèn, vòng lặp bên trong (inner loop) có nhiệm vụ cụ thể là gì?

  • A. Tìm phần tử nhỏ nhất trong phần chưa sắp xếp.
  • B. Thực hiện hoán đổi phần tử hiện tại với phần tử nhỏ nhất được tìm thấy.
  • C. So sánh phần tử hiện tại với các phần tử trong phần đã sắp xếp và dịch chuyển các phần tử lớn hơn (hoặc nhỏ hơn, tùy thứ tự sắp xếp) sang một vị trí.
  • D. Đếm số lần lặp của vòng lặp bên ngoài.

Câu 24: Khi sử dụng thuật toán sắp xếp chọn để sắp xếp một danh sách theo thứ tự giảm dần, bạn sẽ tìm kiếm phần tử nào trong phần chưa sắp xếp ở mỗi bước?

  • A. Phần tử có giá trị lớn nhất.
  • B. Phần tử có giá trị nhỏ nhất.
  • C. Phần tử ở vị trí giữa của phần chưa sắp xếp.
  • D. Phần tử đầu tiên của phần chưa sắp xếp.

Câu 25: Một danh sách gồm 5 phần tử cần được sắp xếp tăng dần. Thuật toán sắp xếp chọn sẽ thực hiện bao nhiêu vòng lặp chính (vòng lặp ngoài) để đảm bảo toàn bộ danh sách được sắp xếp?

  • A. 5
  • B. 4
  • C. 5 * 4 = 20
  • D. 5 * 5 = 25

Câu 26: Khi bạn đọc dữ liệu từ tệp văn bản "diem_tb.inp" trong bài thực hành và muốn lưu điểm trung bình vào danh sách `diem_ds`, dòng lệnh `diem_ds.append(float(line))` có ý nghĩa gì?

  • A. Thêm dòng `line` vào danh sách `diem_ds` dưới dạng chuỗi.
  • B. Chèn dòng `line` vào vị trí đầu tiên của danh sách `diem_ds` dưới dạng số thực.
  • C. Xóa dòng `line` khỏi tệp "diem_tb.inp".
  • D. Chuyển đổi nội dung của dòng `line` thành số thực và thêm nó vào cuối danh sách `diem_ds`.

Câu 27: Giả sử bạn có danh sách [6, 1, 8, 3]. Sử dụng thuật toán sắp xếp chèn để sắp xếp tăng dần. Sau khi xử lý phần tử thứ tư (số 3), danh sách sẽ trông như thế nào?

  • A. [1, 3, 6, 8]
  • B. [1, 6, 8, 3]
  • C. [6, 1, 8, 3]
  • D. [1, 8, 6, 3]

Câu 28: Trong thuật toán sắp xếp chọn để sắp xếp tăng dần, số lần hoán đổi (swap) được thực hiện trong mỗi vòng lặp chính (vòng lặp ngoài) là bao nhiêu?

  • A. Luôn là 1 lần (hoán đổi phần tử nhỏ nhất tìm được với phần tử ở vị trí hiện tại của vòng lặp ngoài).
  • B. Thay đổi tùy thuộc vào dữ liệu đầu vào.
  • C. Bằng số lượng phần tử trong phần chưa sắp xếp.
  • D. Bằng 0 nếu phần tử đã đúng vị trí.

Câu 29: Khi in kết quả sắp xếp, việc sử dụng câu thông báo như `print("Danh sách điểm theo thứ tự giảm dần là:")` trước khi in danh sách đã sắp xếp có ý nghĩa gì?

  • A. Đây là yêu cầu bắt buộc của thuật toán sắp xếp.
  • B. Giúp tăng tốc độ in dữ liệu ra màn hình.
  • C. Giúp người đọc hiểu rõ kết quả được hiển thị là gì và theo thứ tự nào.
  • D. Ngăn chặn lỗi xảy ra khi in danh sách rỗng.

Câu 30: Xem xét quá trình sắp xếp chèn. Nếu một phần tử được chọn để chèn (key) nhỏ hơn tất cả các phần tử trong phần đã sắp xếp, thì nó sẽ được chèn vào vị trí nào trong phần đã sắp xếp?

  • A. Vị trí đầu tiên của phần đã sắp xếp.
  • B. Vị trí cuối cùng của phần đã sắp xếp.
  • C. Vị trí ngay sau phần tử lớn nhất trong phần đã sắp xếp.
  • D. Vị trí ngay trước phần tử nhỏ nhất trong phần đã sắp xếp.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 1: Khi cần sắp xếp một danh sách dữ liệu mà các phần tử mới thường xuyên được thêm vào cuối danh sách đã sắp xếp, thuật toán sắp xếp nào sau đây thường được xem xét là hiệu quả hơn trong việc duy trì trật tự?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 2: Giả sử bạn sử dụng thuật toán sắp xếp chọn để sắp xếp một danh sách gồm 5 số theo thứ tự tăng dần: [15, 8, 20, 5, 12]. Sau vòng lặp đầu tiên (tìm phần tử nhỏ nhất và đưa về vị trí đầu tiên), danh sách sẽ trông như thế nào?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 3: Trong thuật toán sắp xếp chèn, mục đích chính của việc dịch chuyển các phần tử sang phải trong phần danh sách đã sắp xếp là gì?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 4: Một giáo viên muốn sắp xếp danh sách điểm của học sinh theo thứ tự giảm dần để tìm ra các bạn có điểm cao nhất. Thuật toán sắp xếp chọn hoạt động như thế nào để đạt được mục tiêu này?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 5: Giả sử bạn có danh sách [7, 3, 9, 2]. Bạn sử dụng thuật toán sắp xếp chèn để sắp xếp tăng dần. Sau khi xử lý phần tử thứ hai (số 3), danh sách sẽ trông như thế nào?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 6: Khi nào thì thuật toán sắp xếp chèn thể hiện hiệu quả tốt nhất (về số lần so sánh và di chuyển) so với các trường hợp khác?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 7: Trong thuật toán sắp xếp chọn, tại sao chúng ta cần một biến để lưu trữ chỉ số (index) của phần tử nhỏ nhất (hoặc lớn nhất) trong phần chưa sắp xếp, thay vì chỉ lưu giá trị của nó?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 8: Một cửa hàng cần sắp xếp danh sách các sản phẩm tồn kho dựa trên số lượng từ ít nhất đến nhiều nhất. Dữ liệu được đọc từ một tệp văn bản, mỗi dòng chứa số lượng của một loại sản phẩm. Sau khi đọc dữ liệu vào một danh sách trong Python, bước tiếp theo cần làm gì để chuẩn bị cho việc sắp xếp?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 9: Giả sử bạn có danh sách [10, 4, 6, 1]. Bạn sử dụng thuật toán sắp xếp chọn để sắp xếp tăng dần. Sau khi hoàn thành vòng lặp thứ hai (đưa phần tử nhỏ thứ hai về vị trí thứ hai), danh sách sẽ trông như thế nào?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 10: Điểm khác biệt cốt lõi trong cách xây dựng phần danh sách đã sắp xếp giữa thuật toán sắp xếp chèn và thuật toán sắp xếp chọn là gì?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 11: Khi sắp xếp một danh sách theo thứ tự giảm dần bằng thuật toán sắp xếp chèn, bạn sẽ so sánh phần tử hiện tại với các phần tử trong phần đã sắp xếp như thế nào?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 12: Giả sử bạn có danh sách [5, 2, 8, 1, 9]. Bạn sử dụng thuật toán sắp xếp chèn để sắp xếp tăng dần. Sau khi xử lý phần tử thứ ba (số 8), danh sách sẽ trông như thế nào?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 13: Trong một chương trình Python thực hiện sắp xếp, việc đọc dữ liệu từ tệp sử dụng `open('ten_tep.txt', 'r', encoding='utf8')` và sau đó dùng `readlines()` sẽ trả về kết quả là gì?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 14: Khi áp dụng thuật toán sắp xếp chọn để sắp xếp tăng dần một danh sách, sau mỗi lần hoàn thành vòng lặp ngoài, phần tử nào sẽ chắc chắn nằm đúng vị trí cuối cùng của nó trong danh sách đã sắp xếp?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 15: Giả sử bạn có danh sách [40, 10, 30, 20]. Bạn sử dụng thuật toán sắp xếp chọn để sắp xếp giảm dần. Sau vòng lặp đầu tiên (đưa phần tử lớn nhất về vị trí đầu tiên), danh sách sẽ trông như thế nào?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 16: Trong ngữ cảnh của bài toán thực hành, việc sắp xếp số lượng mặt hàng trong kho theo thứ tự tăng dần giúp ích gì cho người quản lý kho?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 17: Khi cài đặt thuật toán sắp xếp chèn trong Python, vòng lặp bên ngoài thường dùng để làm gì?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 18: Giả sử bạn có danh sách [A, C, B, D]. Bạn sử dụng thuật toán sắp xếp chèn để sắp xếp theo thứ tự bảng chữ cái tăng dần. Sau khi xử lý phần tử thứ ba (chữ 'B'), danh sách sẽ trông như thế nào?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 19: Trong thuật toán sắp xếp chọn để sắp xếp tăng dần, sau khi hoàn thành vòng lặp thứ `i`, phần tử tại vị trí `i` (bắt đầu từ 0) sẽ là gì?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 20: Một danh sách điểm [7.5, 9.0, 8.0, 6.5]. Sử dụng thuật toán sắp xếp chọn để sắp xếp giảm dần. Sau khi hoàn thành việc xử lý để đưa điểm cao nhất về vị trí đầu tiên, danh sách sẽ trông như thế nào?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 21: Khi so sánh thuật toán sắp xếp chèn và sắp xếp chọn trên một danh sách có kích thước N, phát biểu nào sau đây là *không* chính xác?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 22: Giả sử bạn có danh sách [10, 20, 30, 40]. Nếu áp dụng thuật toán sắp xếp chèn để sắp xếp tăng dần, điều gì sẽ xảy ra trong quá trình thực hiện?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 23: Trong thuật toán sắp xếp chèn, vòng lặp bên trong (inner loop) có nhiệm vụ cụ thể là gì?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 24: Khi sử dụng thuật toán sắp xếp chọn để sắp xếp một danh sách theo thứ tự giảm dần, bạn sẽ tìm kiếm phần tử nào trong phần chưa sắp xếp ở mỗi bước?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 25: Một danh sách gồm 5 phần tử cần được sắp xếp tăng dần. Thuật toán sắp xếp chọn sẽ thực hiện bao nhiêu vòng lặp chính (vòng lặp ngoài) để đảm bảo toàn bộ danh sách được sắp xếp?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 26: Khi bạn đọc dữ liệu từ tệp văn bản 'diem_tb.inp' trong bài thực hành và muốn lưu điểm trung bình vào danh sách `diem_ds`, dòng lệnh `diem_ds.append(float(line))` có ý nghĩa gì?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 27: Giả sử bạn có danh sách [6, 1, 8, 3]. Sử dụng thuật toán sắp xếp chèn để sắp xếp tăng dần. Sau khi xử lý phần tử thứ tư (số 3), danh sách sẽ trông như thế nào?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 28: Trong thuật toán sắp xếp chọn để sắp xếp tăng dần, số lần hoán đổi (swap) được thực hiện trong mỗi vòng lặp chính (vòng lặp ngoài) là bao nhiêu?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 29: Khi in kết quả sắp xếp, việc sử dụng câu thông báo như `print('Danh sách điểm theo thứ tự giảm dần là:')` trước khi in danh sách đã sắp xếp có ý nghĩa gì?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 09

Câu 30: Xem xét quá trình sắp xếp chèn. Nếu một phần tử được chọn để chèn (key) nhỏ hơn *tất cả* các phần tử trong phần đã sắp xếp, thì nó sẽ được chèn vào vị trí nào trong phần đã sắp xếp?

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 10

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp - Đề 10 được xây dựng với nhiều câu hỏi chất lượng, sát với nội dung chương trình học, giúp bạn dễ dàng ôn tập và kiểm tra kiến thức hiệu quả. Hãy cùng bắt đầu làm bài tập trắc nghiệm ngay để nâng cao hiểu biết và chuẩn bị tốt cho kỳ thi sắp tới!

Câu 1: Khi thực hiện thuật toán sắp xếp chèn (Insertion Sort) trên danh sách [5, 2, 8, 1, 9], sau khi xử lý xong phần tử có giá trị 2, danh sách sẽ có trạng thái như thế nào?

  • A. [2, 5, 8, 1, 9]
  • B. [5, 2, 8, 1, 9]
  • C. [2, 5, 8, 1, 9]
  • D. [1, 2, 5, 8, 9]

Câu 2: Thuật toán sắp xếp chọn (Selection Sort) hoạt động dựa trên nguyên tắc cơ bản nào trong mỗi bước lặp?

  • A. Tìm phần tử nhỏ nhất (hoặc lớn nhất) trong phần danh sách chưa sắp xếp và đổi chỗ nó với phần tử ở vị trí đầu tiên của phần chưa sắp xếp.
  • B. So sánh hai phần tử liền kề và đổi chỗ nếu chúng sai thứ tự, lặp lại cho đến khi không còn cặp nào sai thứ tự.
  • C. Chèn từng phần tử vào đúng vị trí của nó trong phần danh sách con đã được sắp xếp trước đó.
  • D. Chia danh sách thành hai nửa, sắp xếp từng nửa rồi trộn lại.

Câu 3: Cho danh sách [7, 3, 6, 1, 5]. Áp dụng thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp tăng dần. Sau pass (lượt) đầu tiên, danh sách sẽ trông như thế nào?

  • A. [1, 3, 5, 6, 7]
  • B. [3, 6, 1, 5, 7]
  • C. [3, 7, 6, 1, 5]
  • D. [7, 6, 3, 1, 5]

Câu 4: Một danh sách dữ liệu về điểm thi của học sinh được lưu trong tệp `diemthi.txt`, mỗi điểm trên một dòng. Đoạn mã Python nào sau đây đọc đúng dữ liệu từ tệp này vào một danh sách các số nguyên?

  • A. ```python
    diem_ds = []
    with open("diemthi.txt", "r") as f:
    for line in f:
    diem_ds.append(line)
    ```
  • B. ```python
    diem_ds = []
    with open("diemthi.txt", "r") as f:
    diem_ds = f.readlines()
    ```
  • C. ```python
    diem_ds = []
    with open("diemthi.txt", "r") as f:
    for line in f:
    diem_ds.append(float(line.strip()))
    ```
  • D. ```python
    diem_ds = []
    with open("diemthi.txt", "r") as f:
    for line in f:
    diem_ds.append(int(line.strip()))
    ```

Câu 5: Giả sử bạn cần sắp xếp một danh sách các mặt hàng theo số lượng tồn kho tăng dần. Nếu danh sách này thường xuyên được cập nhật bằng cách thêm các mặt hàng mới vào cuối, thuật toán sắp xếp đơn giản nào có thể hoạt động hiệu quả nhất cho việc duy trì thứ tự sau mỗi lần thêm một vài mục?

  • A. Sắp xếp chọn (Selection Sort)
  • B. Sắp xếp nổi bọt (Bubble Sort)
  • C. Sắp xếp chèn (Insertion Sort)
  • D. Tất cả các thuật toán trên đều có hiệu quả như nhau trong trường hợp này.

Câu 6: Trong thuật toán sắp xếp chèn, phần danh sách đã được sắp xếp (sorted sublist) luôn nằm ở vị trí nào trong quá trình thực hiện?

  • A. Ở đầu (bên trái) của danh sách.
  • B. Ở cuối (bên phải) của danh sách.
  • C. Ở giữa danh sách.
  • D. Vị trí của phần đã sắp xếp thay đổi ngẫu nhiên.

Câu 7: Khi sắp xếp danh sách [4, 1, 3, 2] bằng thuật toán sắp xếp chọn (Selection Sort) theo thứ tự tăng dần, sau khi tìm và đặt phần tử nhỏ nhất vào vị trí đầu tiên, danh sách sẽ trở thành:

  • A. [4, 1, 3, 2]
  • B. [1, 4, 3, 2]
  • C. [1, 2, 3, 4]
  • D. [2, 1, 3, 4]

Câu 8: Thuật toán sắp xếp nổi bọt được gọi là "nổi bọt" vì:

  • A. Các phần tử nhỏ hơn "nổi" lên trên (về phía đầu danh sách) sau mỗi lần so sánh.
  • B. Các phần tử ở giữa danh sách có xu hướng "nổi" ra ngoài.
  • C. Các phần tử lớn hơn "nổi" lên (về phía cuối danh sách) sau mỗi pass.
  • D. Thuật toán sử dụng bọt biển để làm sạch dữ liệu.

Câu 9: Cho đoạn mã Python sau thực hiện sắp xếp chèn:
```python
def insertion_sort(lst):
for i in range(1, len(lst)):
key = lst[i]
j = i - 1
# Vòng lặp while thực hiện chức năng gì?
while j >= 0 and key < lst[j]: lst[j + 1] = lst[j] j -= 1 lst[j + 1] = key ``` Vòng lặp `while` trong đoạn mã trên có chức năng chính là gì?

  • A. Dịch chuyển các phần tử trong phần đã sắp xếp sang phải để tạo chỗ trống cho `key`.
  • B. Tìm vị trí của phần tử lớn nhất trong danh sách.
  • C. So sánh `key` với phần tử cuối cùng của danh sách.
  • D. Hoán đổi `key` với phần tử tại vị trí `j`.

Câu 10: Để sắp xếp một danh sách theo thứ tự giảm dần bằng thuật toán sắp xếp chọn (Selection Sort), thay đổi cốt lõi cần thực hiện trong mỗi bước lặp là gì?

  • A. Tìm phần tử nhỏ nhất trong phần chưa sắp xếp và đổi chỗ nó với phần tử cuối cùng của phần chưa sắp xếp.
  • B. Tìm phần tử lớn nhất trong phần chưa sắp xếp và đổi chỗ nó với phần tử đầu tiên của phần chưa sắp xếp.
  • C. So sánh các phần tử liền kề và đổi chỗ nếu phần tử trước nhỏ hơn phần tử sau.
  • D. Chèn từng phần tử vào đúng vị trí trong phần đã sắp xếp sao cho phần đã sắp xếp luôn giảm dần.

Câu 11: Xét danh sách [9, 5, 1, 4, 3]. Áp dụng sắp xếp chèn (Insertion Sort). Sau khi phần tử "1" được chèn vào đúng vị trí, danh sách sẽ có dạng:

  • A. [9, 5, 1, 4, 3]
  • B. [5, 9, 1, 4, 3]
  • C. [1, 9, 5, 4, 3]
  • D. [1, 5, 9, 4, 3]

Câu 12: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), sau mỗi pass hoàn thành, phần tử nào chắc chắn đã nằm đúng vị trí cuối cùng của nó?

  • A. Phần tử lớn nhất (hoặc nhỏ nhất, tùy thứ tự sắp xếp) trong phần danh sách chưa được sắp xếp.
  • B. Phần tử đầu tiên của danh sách.
  • C. Phần tử ở giữa danh sách.
  • D. Không có phần tử nào chắc chắn nằm đúng vị trí sau một pass.

Câu 13: So với sắp xếp chọn và sắp xếp nổi bọt, sắp xếp chèn (Insertion Sort) có ưu điểm gì đáng chú ý khi làm việc với danh sách gần như đã được sắp xếp?

  • A. Luôn thực hiện số lần hoán đổi ít nhất.
  • B. Số lần so sánh không phụ thuộc vào trạng thái ban đầu của danh sách.
  • C. Thực hiện rất ít phép dịch chuyển/hoán đổi, do đó hiệu quả hơn.
  • D. Dễ dàng triển khai hơn các thuật toán khác.

Câu 14: Khi sử dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp một danh sách có N phần tử, số lần hoán đổi (swap) tối đa có thể xảy ra là bao nhiêu?

  • A. N * (N-1) / 2
  • B. N - 1
  • C. N
  • D. Phụ thuộc vào trạng thái ban đầu của danh sách.

Câu 15: Cho danh sách [6, 4, 1, 8, 3]. Áp dụng sắp xếp chọn (Selection Sort) để sắp xếp tăng dần. Sau khi hoàn thành bước tìm và đổi chỗ phần tử nhỏ nhất lần thứ hai (tức là sau khi 2 phần tử đầu tiên đã đúng vị trí), danh sách sẽ có dạng:

  • A. [1, 3, 6, 8, 4]
  • B. [1, 4, 6, 8, 3]
  • C. [1, 4, 3, 6, 8]
  • D. [1, 6, 4, 8, 3]

Câu 16: Điểm khác biệt cơ bản trong cách xây dựng phần danh sách đã sắp xếp giữa thuật toán sắp xếp chèn (Insertion Sort) và sắp xếp chọn (Selection Sort) là gì?

  • A. Chèn: thêm phần tử vào cuối; Chọn: thêm phần tử vào đầu.
  • B. Chèn: đưa phần tử hiện tại vào đúng vị trí trong phần đã sắp xếp; Chọn: tìm phần tử thích hợp nhất (min/max) trong phần chưa sắp xếp và đưa nó vào vị trí cuối của phần đã sắp xếp.
  • C. Chèn: sử dụng hoán đổi; Chọn: sử dụng dịch chuyển.
  • D. Chèn: hiệu quả với danh sách lớn; Chọn: hiệu quả với danh sách nhỏ.

Câu 17: Bạn có một danh sách điểm thi cần được sắp xếp giảm dần để tìm ra top 5 học sinh. Thuật toán sắp xếp chọn (Selection Sort) có thể được điều chỉnh để làm điều này một cách tự nhiên bằng cách:

  • A. Tìm phần tử lớn nhất trong phần chưa sắp xếp và đổi chỗ nó với phần tử ở đầu phần chưa sắp xếp.
  • B. Tìm phần tử nhỏ nhất trong phần chưa sắp xếp và đổi chỗ nó với phần tử ở đầu phần chưa sắp xếp.
  • C. So sánh các phần tử liền kề và đổi chỗ nếu phần tử trước lớn hơn phần tử sau.
  • D. Chèn từng phần tử vào cuối danh sách đã sắp xếp.

Câu 18: Xét đoạn mã Python cho sắp xếp nổi bọt (Bubble Sort):
```python
def bubble_sort(lst):
n = len(lst)
for i in range(n):
# Vòng lặp j thực hiện chức năng gì?
for j in range(0, n - i - 1):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
```
Vòng lặp `for j` có mục đích chính là gì trong mỗi pass của thuật toán?

  • A. Tìm phần tử nhỏ nhất trong phần chưa sắp xếp.
  • B. Chèn phần tử hiện tại vào vị trí đúng trong phần đã sắp xếp.
  • C. So sánh và hoán đổi các cặp phần tử liền kề để đưa phần tử lớn nhất về cuối phần chưa sắp xếp.
  • D. Dịch chuyển các phần tử sang phải.

Câu 19: Khi sắp xếp danh sách [2, 8, 3, 5] bằng thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần. Sau khi xử lý phần tử có giá trị 3, danh sách sẽ là?

  • A. [2, 8, 3, 5]
  • B. [2, 3, 8, 5]
  • C. [3, 2, 8, 5]
  • D. [2, 3, 8, 5]

Câu 20: Ưu điểm chính của thuật toán sắp xếp chọn (Selection Sort) so với sắp xếp nổi bọt (Bubble Sort) là gì?

  • A. Số lần hoán đổi ít hơn đáng kể (chỉ N-1 lần hoán đổi chính).
  • B. Số lần so sánh ít hơn.
  • C. Dễ dàng cài đặt hơn.
  • D. Hiệu quả hơn với danh sách gần sắp xếp.

Câu 21: Một giáo viên cần sắp xếp danh sách điểm của 100 học sinh theo thứ tự giảm dần để công bố. Danh sách điểm không có đặc điểm gì nổi bật (không gần sắp xếp, không quá nhỏ). Thuật toán nào trong số các thuật toán đơn giản đã học (chèn, chọn, nổi bọt) là lựa chọn hợp lý về mặt hiệu suất cho quy mô dữ liệu này?

  • A. Sắp xếp nổi bọt (Bubble Sort)
  • B. Sắp xếp chọn (Selection Sort)
  • C. Sắp xếp chèn (Insertion Sort)
  • D. Cả ba thuật toán đều có hiệu suất tương đương cho 100 phần tử.

Câu 22: Khi sắp xếp danh sách [5, 1, 4, 2, 8] bằng thuật toán sắp xếp nổi bọt (Bubble Sort) tăng dần. Sau pass thứ hai, danh sách sẽ có dạng:

  • A. [1, 2, 4, 5, 8]
  • B. [1, 4, 2, 5, 8]
  • C. [1, 4, 2, 8, 5]
  • D. [1, 4, 5, 2, 8]

Câu 23: Thuật toán sắp xếp nào duy trì tính chất là phần đầu của danh sách (tính từ phần tử đầu tiên đến phần tử đang xét) luôn được sắp xếp?

  • A. Sắp xếp chèn (Insertion Sort)
  • B. Sắp xếp chọn (Selection Sort)
  • C. Sắp xếp nổi bọt (Bubble Sort)
  • D. Cả ba thuật toán.

Câu 24: Trong thuật toán sắp xếp chọn (Selection Sort) để sắp xếp tăng dần, biến lưu chỉ số của phần tử nhỏ nhất trong phần chưa sắp xếp thường được cập nhật khi nào?

  • A. Sau mỗi lần hoán đổi.
  • B. Khi bắt đầu mỗi pass (lượt) mới.
  • C. Khi tìm thấy một phần tử lớn hơn phần tử đang xét.
  • D. Khi tìm thấy một phần tử nhỏ hơn phần tử hiện đang được coi là nhỏ nhất trong phần chưa sắp xếp.

Câu 25: Nếu bạn muốn sắp xếp một danh sách mà bạn biết chắc chắn rằng nó đã được sắp xếp ngược (ví dụ: [5, 4, 3, 2, 1]), thuật toán sắp xếp đơn giản nào có thể tốn nhiều lần hoán đổi nhất?

  • 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 (Bubble Sort)
  • D. Cả ba đều tốn số lần hoán đổi tương đương.

Câu 26: Xét đoạn mã giả (pseudocode) sau cho sắp xếp chèn:
```
cho i từ 1 đến độ dài danh sách - 1:
giá_trị_hiện_tại = danh_sách[i]
j = i - 1
trong khi j >= 0 VÀ danh_sách[j] > giá_trị_hiện_tại:
danh_sách[j + 1] = danh_sách[j]
j = j - 1
danh_sách[j + 1] = giá_trị_hiện_tại
```
Nếu muốn sửa đoạn mã giả này để sắp xếp giảm dần, thay đổi nào là đúng?

  • A. Thay `danh_sách[j] > giá_trị_hiện_tại` thành `danh_sách[j] < giá_trị_hiện_tại`.
  • B. Thay `danh_sách[j] > giá_trị_hiện_tại` thành `danh_sách[j] < giá_trị_hiện_tại` VÀ thay vòng lặp `cho i` chạy từ cuối về đầu.
  • C. Thay `danh_sách[j + 1] = danh_sách[j]` thành `danh_sách[j] = danh_sách[j + 1]`.
  • D. Thay `danh_sách[j + 1] = giá_trị_hiện_tại` thành `danh_sách[j] = giá_trị_hiện_tại`.

Câu 27: Trong thuật toán sắp xếp chèn (Insertion Sort), sau khi lấy phần tử `key` ra khỏi vị trí ban đầu, các phần tử lớn hơn `key` trong phần đã sắp xếp được dịch sang phải. Mục đích của việc dịch chuyển này là gì?

  • A. Để đếm số lần so sánh.
  • B. Để loại bỏ các phần tử trùng lặp.
  • C. Để tạo ra một khoảng trống tại vị trí thích hợp để chèn `key` vào.
  • D. Để đưa phần tử lớn nhất về cuối danh sách.

Câu 28: Khi sắp xếp một danh sách có N phần tử bằng thuật toán sắp xếp chọn (Selection Sort), số lần so sánh (comparison) luôn xấp xỉ bao nhiêu?

  • A. N * (N - 1) / 2
  • B. N - 1
  • C. N
  • D. Phụ thuộc vào trạng thái ban đầu của danh sách.

Câu 29: Cho danh sách [4, 2, 7, 1]. Theo dõi quá trình sắp xếp bằng thuật toán sắp xếp nổi bọt (Bubble Sort) tăng dần. Dãy các hoán đổi (swap) xảy ra trong pass đầu tiên là gì?

  • A. (4,2), (4,7), (7,1)
  • B. (4,2), (7,1), (7,4)
  • C. (4,2), (2,1), (7,4)
  • D. (4,2), (7,1)

Câu 30: Giả sử bạn đang thực hiện sắp xếp chọn (Selection Sort) tăng dần trên danh sách [10, 4, 7, 1, 9]. Sau khi hoàn thành việc đặt phần tử nhỏ nhất (1) vào vị trí đầu tiên, bạn tiếp tục tìm phần tử nhỏ nhất tiếp theo trong phần còn lại [4, 7, 9]. Phần tử nào sẽ được tìm thấy và đặt vào vị trí thứ hai?

  • A. 4
  • B. 7
  • C. 9
  • D. 10

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 1: Khi thực hiện thuật toán sắp xếp chèn (Insertion Sort) trên danh sách [5, 2, 8, 1, 9], sau khi xử lý xong phần tử có giá trị 2, danh sách sẽ có trạng thái như thế nào?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 2: Thuật toán sắp xếp chọn (Selection Sort) hoạt động dựa trên nguyên tắc cơ bản nào trong mỗi bước lặp?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 3: Cho danh sách [7, 3, 6, 1, 5]. Áp dụng thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp tăng dần. Sau pass (lượt) đầu tiên, danh sách sẽ trông như thế nào?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 4: Một danh sách dữ liệu về điểm thi của học sinh được lưu trong tệp `diemthi.txt`, mỗi điểm trên một dòng. Đoạn mã Python nào sau đây đọc đúng dữ liệu từ tệp này vào một danh sách các số nguyên?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 5: Giả sử bạn cần sắp xếp một danh sách các mặt hàng theo số lượng tồn kho tăng dần. Nếu danh sách này thường xuyên được cập nhật bằng cách thêm các mặt hàng mới vào cuối, thuật toán sắp xếp đơn giản nào có thể hoạt động hiệu quả nhất cho việc duy trì thứ tự sau mỗi lần thêm một vài mục?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 6: Trong thuật toán sắp xếp chèn, phần danh sách đã được sắp xếp (sorted sublist) luôn nằm ở vị trí nào trong quá trình thực hiện?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 7: Khi sắp xếp danh sách [4, 1, 3, 2] bằng thuật toán sắp xếp chọn (Selection Sort) theo thứ tự tăng dần, sau khi tìm và đặt phần tử nhỏ nhất vào vị trí đầu tiên, danh sách sẽ trở thành:

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 8: Thuật toán sắp xếp nổi bọt được gọi là 'nổi bọt' vì:

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 9: Cho đoạn mã Python sau thực hiện sắp xếp chèn:
```python
def insertion_sort(lst):
for i in range(1, len(lst)):
key = lst[i]
j = i - 1
# Vòng lặp while thực hiện chức năng gì?
while j >= 0 and key < lst[j]: lst[j + 1] = lst[j] j -= 1 lst[j + 1] = key ``` Vòng lặp `while` trong đoạn mã trên có chức năng chính là gì?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 10: Để sắp xếp một danh sách theo thứ tự giảm dần bằng thuật toán sắp xếp chọn (Selection Sort), thay đổi cốt lõi cần thực hiện trong mỗi bước lặp là gì?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 11: Xét danh sách [9, 5, 1, 4, 3]. Áp dụng sắp xếp chèn (Insertion Sort). Sau khi phần tử '1' được chèn vào đúng vị trí, danh sách sẽ có dạng:

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 12: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), sau mỗi pass hoàn thành, phần tử nào chắc chắn đã nằm đúng vị trí cuối cùng của nó?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 13: So với sắp xếp chọn và sắp xếp nổi bọt, sắp xếp chèn (Insertion Sort) có ưu điểm gì đáng chú ý khi làm việc với danh sách gần như đã được sắp xếp?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 14: Khi sử dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp một danh sách có N phần tử, số lần hoán đổi (swap) tối đa có thể xảy ra là bao nhiêu?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 15: Cho danh sách [6, 4, 1, 8, 3]. Áp dụng sắp xếp chọn (Selection Sort) để sắp xếp tăng dần. Sau khi hoàn thành bước tìm và đổi chỗ phần tử nhỏ nhất lần thứ hai (tức là sau khi 2 phần tử đầu tiên đã đúng vị trí), danh sách sẽ có dạng:

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 16: Điểm khác biệt cơ bản trong cách xây dựng phần danh sách đã sắp xếp giữa thuật toán sắp xếp chèn (Insertion Sort) và sắp xếp chọn (Selection Sort) là gì?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 17: Bạn có một danh sách điểm thi cần được sắp xếp giảm dần để tìm ra top 5 học sinh. Thuật toán sắp xếp chọn (Selection Sort) có thể được điều chỉnh để làm điều này một cách tự nhiên bằng cách:

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 18: Xét đoạn mã Python cho sắp xếp nổi bọt (Bubble Sort):
```python
def bubble_sort(lst):
n = len(lst)
for i in range(n):
# Vòng lặp j thực hiện chức năng gì?
for j in range(0, n - i - 1):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
```
Vòng lặp `for j` có mục đích chính là gì trong mỗi pass của thuật toán?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 19: Khi sắp xếp danh sách [2, 8, 3, 5] bằng thuật toán sắp xếp chèn (Insertion Sort) theo thứ tự tăng dần. Sau khi xử lý phần tử có giá trị 3, danh sách sẽ là?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 20: Ưu điểm chính của thuật toán sắp xếp chọn (Selection Sort) so với sắp xếp nổi bọt (Bubble Sort) là gì?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 21: Một giáo viên cần sắp xếp danh sách điểm của 100 học sinh theo thứ tự giảm dần để công bố. Danh sách điểm không có đặc điểm gì nổi bật (không gần sắp xếp, không quá nhỏ). Thuật toán nào trong số các thuật toán đơn giản đã học (chèn, chọn, nổi bọt) là lựa chọn hợp lý về mặt hiệu suất cho quy mô dữ liệu này?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 22: Khi sắp xếp danh sách [5, 1, 4, 2, 8] bằng thuật toán sắp xếp nổi bọt (Bubble Sort) tăng dần. Sau pass thứ hai, danh sách sẽ có dạng:

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 23: Thuật toán sắp xếp nào duy trì tính chất là phần đầu của danh sách (tính từ phần tử đầu tiên đến phần tử đang xét) luôn được sắp xếp?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 24: Trong thuật toán sắp xếp chọn (Selection Sort) để sắp xếp tăng dần, biến lưu chỉ số của phần tử nhỏ nhất trong phần chưa sắp xếp thường được cập nhật khi nào?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 25: Nếu bạn muốn sắp xếp một danh sách mà bạn biết chắc chắn rằng nó đã được sắp xếp ngược (ví dụ: [5, 4, 3, 2, 1]), thuật toán sắp xếp đơn giản nào có thể tốn nhiều lần hoán đổi nhất?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 26: Xét đoạn mã giả (pseudocode) sau cho sắp xếp chèn:
```
cho i từ 1 đến độ dài danh sách - 1:
giá_trị_hiện_tại = danh_sách[i]
j = i - 1
trong khi j >= 0 VÀ danh_sách[j] > giá_trị_hiện_tại:
danh_sách[j + 1] = danh_sách[j]
j = j - 1
danh_sách[j + 1] = giá_trị_hiện_tại
```
Nếu muốn sửa đoạn mã giả này để sắp xếp giảm dần, thay đổi nào là đúng?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 27: Trong thuật toán sắp xếp chèn (Insertion Sort), sau khi lấy phần tử `key` ra khỏi vị trí ban đầu, các phần tử lớn hơn `key` trong phần đã sắp xếp được dịch sang phải. Mục đích của việc dịch chuyển này là gì?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 28: Khi sắp xếp một danh sách có N phần tử bằng thuật toán sắp xếp chọn (Selection Sort), số lần so sánh (comparison) luôn xấp xỉ bao nhiêu?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 29: Cho danh sách [4, 2, 7, 1]. Theo dõi quá trình sắp xếp bằng thuật toán sắp xếp nổi bọt (Bubble Sort) tăng dần. Dãy các hoán đổi (swap) xảy ra trong pass đầu tiên là gì?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 22: Thực hành bài toán sắp xếp

Tags: Bộ đề 10

Câu 30: Giả sử bạn đang thực hiện sắp xếp chọn (Selection Sort) tăng dần trên danh sách [10, 4, 7, 1, 9]. Sau khi hoàn thành việc đặt phần tử nhỏ nhất (1) vào vị trí đầu tiên, bạn tiếp tục tìm phần tử nhỏ nhất tiếp theo trong phần còn lại [4, 7, 9]. Phần tử nào sẽ được tìm thấy và đặt vào vị trí thứ hai?

Viết một bình luận