15+ Đề Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Đề 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 21: Các thuật toán sắp xếp đơn giản

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 01

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 01 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong 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 và sắp xếp nổi bọt, tiêu chí chính để đánh giá độ hiệu quả của chúng thường là gì?

  • A. Tính dễ hiểu và dễ cài đặt của thuật toán.
  • B. Số dòng code cần thiết để viết thuật toán.
  • C. Dung lượng bộ nhớ tối thiểu mà thuật toán yêu cầu khi chạy.
  • D. Độ phức tạp thời gian thực hiện và độ phức tạp không gian sử dụng.

Câu 2: Xét một mảng số nguyên đã gần như được sắp xếp, thuật toán sắp xếp nào trong số các thuật toán sắp xếp đơn giản (chèn, chọn, nổi bọt) thường cho hiệu suất tốt nhất về thời gian thực hiện?

  • 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 tương đương nhau.

Câu 3: Trong thuật toán sắp xếp chọn, sau khi thực hiện xong `k` vòng lặp (với `k < n`, `n` là kích thước mảng), điều gì đảm bảo đúng về trạng thái của mảng?

  • A. `k` phần tử đầu tiên của mảng đã được sắp xếp theo thứ tự giảm dần.
  • B. `k` phần tử đầu tiên của mảng đã được sắp xếp và là `k` phần tử nhỏ nhất của mảng ban đầu.
  • C. `k` phần tử cuối cùng của mảng đã được sắp xếp và là `k` phần tử lớn nhất của mảng ban đầu.
  • D. Mảng đã được sắp xếp hoàn toàn nếu `k` lớn hơn một nửa kích thước mảng.

Câu 4: Thuật toán sắp xếp nổi bọt hoạt động bằng cách lặp đi lặp lại việc so sánh các cặp phần tử liền kề. Điều gì sẽ xảy ra sau khi vòng lặp ngoài cùng của thuật toán sắp xếp nổi bọt hoàn thành lần đầu tiên?

  • A. Phần tử nhỏ nhất sẽ được đưa về đầu mảng.
  • B. Mảng sẽ được chia thành hai nửa đã sắp xếp.
  • C. Phần tử lớn nhất sẽ được đưa về cuối mảng.
  • D. Không có sự thay đổi đáng kể nào trong mảng sau vòng lặp đầu tiên.

Câu 5: Cho một mảng [5, 2, 8, 1, 9, 4, 7]. Nếu sử dụng thuật toán sắp xếp chèn, sau bước chèn phần tử thứ 3 (số 8), mảng sẽ có dạng như thế nào?

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

Câu 6: Trong trường hợp nào thì thuật toán sắp xếp nổi bọt có độ phức tạp thời gian tốt nhất là O(n)?

  • A. Khi mảng đầu vào đã được sắp xếp hoàn toàn.
  • B. Khi mảng đầu vào được sắp xếp ngược.
  • C. Khi tất cả các phần tử trong mảng đều giống nhau.
  • D. Độ phức tạp thời gian tốt nhất của sắp xếp nổi bọt luôn là O(n^2).

Câu 7: Phát biểu nào sau đây là đúng về tính ổn định (stability) của các thuật toán sắp xếp?

  • A. Thuật toán sắp xếp ổn định luôn có độ phức tạp thời gian tốt hơn các thuật toán không ổn định.
  • B. Tính ổn định của thuật toán không ảnh hưởng đến kết quả sắp xếp cuối cùng.
  • C. Thuật toán sắp xếp ổn định giữ nguyên thứ tự tương đối của các phần tử có khóa bằng nhau.
  • D. Sắp xếp nổi bọt và sắp xếp chọn là các thuật toán sắp xếp ổn định.

Câu 8: Cho đoạn mã giả thuật toán sắp xếp sau:

```
for i from 1 to n-1:
min_index = i
for j from i+1 to n:
if array[j] < array[min_index]: min_index = j swap array[i] and array[min_index] ``` Đoạn mã trên mô tả thuật toán sắp xếp nào?

  • 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. Sắp xếp nhanh (Quick Sort)

Câu 9: Trong các thuật toán sắp xếp đơn giản đã học, thuật toán nào có số lượng phép hoán đổi (swap) phần tử ít nhất trong trường hợp trung bình?

  • 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ó số lượng phép hoán đổi tương đương nhau.

Câu 10: Giả sử bạn cần sắp xếp một danh sách nhỏ các tên học sinh theo thứ tự bảng chữ cái. Yếu tố nào sau đây quan trọng nhất cần xem xét khi lựa chọn thuật toán sắp xếp trong tình huống này?

  • A. Sự đơn giản và dễ cài đặt của thuật toán.
  • B. Độ phức tạp thời gian trong trường hợp xấu nhất.
  • C. Mức sử dụng bộ nhớ phụ của thuật toán.
  • D. Tính ổn định của thuật toán sắp xếp.

Câu 11: Cho mảng [9, 7, 5, 3, 1]. Nếu áp dụng thuật toán sắp xếp nổi bọt, sau vòng lặp ngoài đầu tiên, mảng sẽ trở thành:

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

Câu 12: Trong thuật toán sắp xếp chèn, khi chèn một phần tử vào vị trí đúng trong phần đã sắp xếp, thao tác chính nào được thực hiện để tạo chỗ trống?

  • A. Hoán đổi phần tử với phần tử liền trước.
  • B. Dịch chuyển các phần tử lớn hơn sang bên phải.
  • C. Tìm kiếm vị trí thích hợp bằng tìm kiếm nhị phân.
  • D. Xóa phần tử tại vị trí chèn và thêm phần tử mới vào.

Câu 13: Thuật toán sắp xếp nào sau đây luôn thực hiện số lượng phép so sánh giống nhau, không phụ thuộc vào thứ tự ban đầu của dữ liệ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. Cả ba thuật toán đều có số phép so sánh cố định.

Câu 14: Để sắp xếp một mảng lớn chứa dữ liệu ngẫu nhiên, thuật toán sắp xếp đơn giản nào có xu hướng chậm nhất về mặt thời gian thực hiện?

  • 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ó tốc độ tương đương trên mảng lớn.

Câu 15: Trong thuật toán sắp xếp chọn, giả sử bạn đang ở vòng lặp thứ `i`. Phần tử nào sẽ được chọn để đưa vào vị trí thứ `i`?

  • A. Phần tử lớn nhất trong mảng hiện tại.
  • B. Phần tử đầu tiên của mảng chưa sắp xếp.
  • C. Phần tử ở vị trí giữa của mảng chưa sắp xếp.
  • D. Phần tử nhỏ nhất trong phần còn lại của mảng chưa sắp xếp.

Câu 16: Xét mảng [3, 1, 4, 1, 5, 9, 2, 6]. Nếu sử dụng thuật toán sắp xếp chèn, sau khi hoàn tất chèn phần tử 4, mảng sẽ là:

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

Câu 17: Trong các thuật toán sắp xếp đơn giản, thuật toán nào được coi là "tại chỗ" (in-place)?

  • A. Chỉ sắp xếp chèn.
  • B. Chỉ sắp xếp nổi bọt.
  • C. Chỉ sắp xếp chọn.
  • D. Cả sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt.

Câu 18: Giả sử bạn có một mảng gồm các số đã được sắp xếp giảm dần. Thuật toán sắp xếp chèn sẽ hoạt động như thế nào trong trường hợp này?

  • A. Đạt hiệu suất tốt nhất O(n).
  • B. Đạt hiệu suất kém nhất O(n^2).
  • C. Hiệu suất trung bình O(n log n).
  • D. Không thể sắp xếp được mảng này.

Câu 19: Trong thuật toán sắp xếp nổi bọt, điều kiện dừng thuật toán (khi mảng đã được sắp xếp) có thể được xác định như thế nào?

  • A. Khi không có bất kỳ phép hoán đổi nào được thực hiện trong một vòng lặp.
  • B. Khi đã thực hiện đủ n-1 vòng lặp (n là kích thước mảng).
  • C. Khi phần tử đầu tiên lớn hơn phần tử cuối cùng.
  • D. Không có điều kiện dừng cụ thể, thuật toán luôn chạy đủ số vòng lặp định trước.

Câu 20: Cho mảng [6, 3, 8, 5, 1, 9]. Nếu sử dụng thuật toán sắp xếp chọn, sau vòng lặp đầu tiên, mảng sẽ có dạng:

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

Câu 21: Phát biểu nào sau đây mô tả đúng nhất ưu điểm của thuật toán sắp xếp chèn so với sắp xếp chọn và sắp xếp nổi bọt?

  • A. Luôn có độ phức tạp thời gian tốt hơn trong mọi trường hợp.
  • B. Hiệu quả hơn trên dữ liệu đã gần được sắp xếp.
  • C. Sử dụng ít bộ nhớ phụ hơn.
  • D. Dễ cài đặt và dễ hiểu hơn.

Câu 22: Trong thuật toán sắp xếp chọn, số lượng phép so sánh cần thực hiện để sắp xếp một mảng có kích thước `n` là bao nhiêu?

  • A. n - 1
  • B. n * log(n)
  • C. n * (n - 1) / 2
  • D. 2 * n

Câu 23: Thuật toán sắp xếp nổi bọt có thể được tối ưu hóa bằng cách nào để giảm số lượng vòng lặp không cần thiết?

  • A. Ghi nhớ vị trí hoán đổi cuối cùng và giới hạn vòng lặp ở vị trí đó.
  • B. Sử dụng tìm kiếm nhị phân để tìm vị trí hoán đổi.
  • C. Chia mảng thành các đoạn nhỏ hơn và sắp xếp riêng lẻ.
  • D. Không có cách nào để tối ưu hóa thuật toán sắp xếp nổi bọt.

Câu 24: Cho mảng [4, 2, 6, 1, 3, 5]. Nếu sử dụng thuật toán sắp xếp nổi bọt, sau hai vòng lặp ngoài, mảng sẽ có dạng:

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

Câu 25: Trong tình huống nào thuật toán sắp xếp chọn có thể được ưu tiên sử dụng hơn so với sắp xếp chèn hoặc sắp xếp nổi bọt?

  • A. Khi cần sắp xếp mảng đã gần được sắp xếp.
  • B. Khi cần tốc độ sắp xếp nhanh nhất có thể.
  • C. Khi số lượng phép hoán đổi phần tử cần được giảm thiểu.
  • D. Khi yêu cầu tính ổn định của thuật toán là bắt buộc.

Câu 26: Để sắp xếp một mảng kích thước lớn trên một hệ thống có bộ nhớ hạn chế, thuật toán sắp xếp "tại chỗ" nào trong các thuật toán đơn giản sẽ phù hợp?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp nhanh (Quick Sort)
  • C. Sắp xếp đếm (Counting Sort)
  • D. Sắp xếp chọn (Selection Sort)

Câu 27: Xét thuật toán sắp xếp chèn. Nếu mảng đầu vào đã được sắp xếp tăng dần, số phép so sánh trong trường hợp này là bao nhiêu?

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

Câu 28: Trong thuật toán sắp xếp nổi bọt, vòng lặp bên trong có vai trò chính là gì?

  • A. Tìm phần tử nhỏ nhất trong mảng.
  • B. So sánh và hoán đổi các cặp phần tử liền kề.
  • C. Chèn phần tử vào vị trí đúng trong phần đã sắp xếp.
  • D. Chia mảng thành các phần nhỏ hơn.

Câu 29: Thuật toán sắp xếp nào sau đây là ổn định?

  • A. Sắp xếp chèn (Insertion Sort)
  • B. Sắp xếp chọn (Selection Sort)
  • C. Sắp xếp nhanh (Quick Sort)
  • D. Sắp xếp vun đống (Heap Sort)

Câu 30: Để sắp xếp một mảng các đối tượng phức tạp (ví dụ, sinh viên với nhiều thuộc tính) dựa trên một thuộc tính khóa, tính ổn định của thuật toán sắp xếp có ý nghĩa quan trọng khi nào?

  • A. Khi mảng có kích thước rất lớn.
  • B. Khi tốc độ sắp xếp là ưu tiên hàng đầu.
  • C. Khi muốn duy trì thứ tự ban đầu của các đối tượng có khóa trùng nhau.
  • D. Tính ổn định không quan trọng trong trường hợp này.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 1: Trong 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 và sắp xếp nổi bọt, tiêu chí chính để đánh giá độ hiệu quả của chúng thường là gì?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 2: Xét một mảng số nguyên đã gần như được sắp xếp, thuật toán sắp xếp nào trong số các thuật toán sắp xếp đơn giản (chèn, chọn, nổi bọt) thường cho hiệu suất tốt nhất về thời gian thực hiện?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 3: Trong thuật toán sắp xếp chọn, sau khi thực hiện xong `k` vòng lặp (với `k < n`, `n` là kích thước mảng), điều gì đảm bảo đúng về trạng thái của mảng?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 4: Thuật toán sắp xếp nổi bọt hoạt động bằng cách lặp đi lặp lại việc so sánh các cặp phần tử liền kề. Điều gì sẽ xảy ra sau khi vòng lặp ngoài cùng của thuật toán sắp xếp nổi bọt hoàn thành lần đầu tiên?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 5: Cho một mảng [5, 2, 8, 1, 9, 4, 7]. Nếu sử dụng thuật toán sắp xếp chèn, sau bước chèn phần tử thứ 3 (số 8), mảng sẽ có dạ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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 6: Trong trường hợp nào thì thuật toán sắp xếp nổi bọt có độ phức tạp thời gian tốt nhất là O(n)?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 7: Phát biểu nào sau đây là đúng về tính ổn định (stability) của các thuật toá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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 8: Cho đoạn mã giả thuật toán sắp xếp sau:

```
for i from 1 to n-1:
min_index = i
for j from i+1 to n:
if array[j] < array[min_index]: min_index = j swap array[i] and array[min_index] ``` Đoạn mã trên mô tả thuật toán sắp xếp nào?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 9: Trong các thuật toán sắp xếp đơn giản đã học, thuật toán nào có số lượng phép hoán đổi (swap) phần tử ít nhất trong trường hợp trung bình?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 10: Giả sử bạn cần sắp xếp một danh sách nhỏ các tên học sinh theo thứ tự bảng chữ cái. Yếu tố nào sau đây quan trọng nhất cần xem xét khi lựa chọn thuật toán sắp xếp trong tình huống này?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 11: Cho mảng [9, 7, 5, 3, 1]. Nếu áp dụng thuật toán sắp xếp nổi bọt, sau vòng lặp ngoài đầu tiên, mảng sẽ trở thành:

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 12: Trong thuật toán sắp xếp chèn, khi chèn một phần tử vào vị trí đúng trong phần đã sắp xếp, thao tác chính nào được thực hiện để 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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 13: Thuật toán sắp xếp nào sau đây luôn thực hiện số lượng phép so sánh giống nhau, không phụ thuộc vào thứ tự ban đầu của dữ liệu?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 14: Để sắp xếp một mảng lớn chứa dữ liệu ngẫu nhiên, thuật toán sắp xếp đơn giản nào có xu hướng chậm nhất về mặt thời gian thực hiện?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 15: Trong thuật toán sắp xếp chọn, giả sử bạn đang ở vòng lặp thứ `i`. Phần tử nào sẽ được chọn để đưa vào vị trí thứ `i`?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 16: Xét mảng [3, 1, 4, 1, 5, 9, 2, 6]. Nếu sử dụng thuật toán sắp xếp chèn, sau khi hoàn tất chèn phần tử 4, mảng sẽ là:

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 17: Trong các thuật toán sắp xếp đơn giản, thuật toán nào được coi là 'tại chỗ' (in-place)?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 18: Giả sử bạn có một mảng gồm các số đã được sắp xếp giảm dần. Thuật toán sắp xếp chèn sẽ hoạt động như thế nào trong trường hợp này?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 19: Trong thuật toán sắp xếp nổi bọt, điều kiện dừng thuật toán (khi mảng đã được sắp xếp) có thể được xác định như thế nào?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 20: Cho mảng [6, 3, 8, 5, 1, 9]. Nếu sử dụng thuật toán sắp xếp chọn, sau vòng lặp đầu tiên, mảng sẽ có dạng:

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 21: Phát biểu nào sau đây mô tả đúng nhất ưu điểm của thuật toán sắp xếp chèn so với sắp xếp chọn và sắp xếp nổi bọt?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 22: Trong thuật toán sắp xếp chọn, số lượng phép so sánh cần thực hiện để sắp xếp một mảng có kích thước `n` là bao nhiêu?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 23: Thuật toán sắp xếp nổi bọt có thể được tối ưu hóa bằng cách nào để giảm số lượng vòng lặp không cần thiết?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 24: Cho mảng [4, 2, 6, 1, 3, 5]. Nếu sử dụng thuật toán sắp xếp nổi bọt, sau hai vòng lặp ngoài, mảng sẽ có dạng:

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 25: Trong tình huống nào thuật toán sắp xếp chọn có thể được ưu tiên sử dụng hơn so với sắp xếp chèn hoặc sắp xếp nổi bọt?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 26: Để sắp xếp một mảng kích thước lớn trên một hệ thống có bộ nhớ hạn chế, thuật toán sắp xếp 'tại chỗ' nào trong các thuật toán đơn giản sẽ phù hợp?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 27: Xét thuật toán sắp xếp chèn. Nếu mảng đầu vào đã được sắp xếp tăng dần, số phép so sánh trong trường hợp này là bao nhiêu?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 28: Trong thuật toán sắp xếp nổi bọt, vòng lặp bên trong có vai trò chính là gì?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 29: Thuật toán sắp xếp nào sau đây là ổn định?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 1

Câu 30: Để sắp xếp một mảng các đối tượng phức tạp (ví dụ, sinh viên với nhiều thuộc tính) dựa trên một thuộc tính khóa, tính ổn định của thuật toán sắp xếp có ý nghĩa quan trọng khi nào?

Xem kết quả

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 21: Các thuật toán sắp xếp đơn giản

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 02

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 02 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong thuật toán sắp xếp chèn (Insertion Sort), ở mỗi bước lặp, chúng ta chèn một phần tử vào vị trí thích hợp trong dãy con đã được sắp xếp. Giả sử bạn đang sắp xếp dãy số [5, 2, 4, 6, 1, 3] theo thứ tự tăng dần. Sau khi chèn phần tử thứ 3 (số 4), dãy số sẽ có dạng như thế nào?

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

Câu 2: Thuật toán sắp xếp chọn (Selection Sort) hoạt động bằng cách lặp đi lặp lại việc tìm phần tử nhỏ nhất từ phần chưa sắp xếp và đưa nó về đầu. Trong trường hợp mảng đã được sắp xếp ngược thứ tự, số lượng phép so sánh trong thuật toán sắp xếp chọn với mảng có n phần tử là bao nhiêu?

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

Câu 3: Xét thuật toán sắp xếp nổi bọt (Bubble Sort). Điều gì sẽ xảy ra sau vòng lặp đầu tiên của thuật toán này khi áp dụng lên dãy số [6, 5, 4, 3, 2, 1] để sắp xếp theo thứ tự tăng dần?

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

Câu 4: Trong 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 và sắp xếp nổi bọt, thuật toán nào có số lượng phép hoán đổi (swaps) ít nhất trong trường hợp xấu 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ó số lượng hoán đổi như nhau

Câu 5: Độ phức tạp thời gian trung bình của thuật toán sắp xếp chèn là O(n^2). Tuy nhiên, trong trường hợp nào thì sắp xếp chèn có độ phức tạp thời gian gần như tuyến tính O(n)?

  • A. Khi mảng đầu vào đã gần như được sắp xếp
  • B. Khi mảng đầu vào chứa các phần tử giống nhau
  • C. Khi mảng đầu vào có kích thước nhỏ
  • D. Sắp xếp chèn luôn có độ phức tạp O(n) trong mọi trường hợp

Câu 6: Thuật toán sắp xếp nào sau đây là ổn định (stable sorting algorithm)? Tính ổn định có nghĩa là các phần tử có khóa bằng nhau giữ nguyên thứ tự tương đối của chúng sau khi sắp xếp.

  • A. Sắp xếp chọn (Selection Sort)
  • B. Cả sắp xếp chọn và sắp xếp nổi bọt
  • C. Sắp xếp chèn (Insertion Sort)
  • D. Cả ba thuật toán: sắp xếp chèn, chọn và nổi bọt

Câu 7: Trong tình huống nào sau đây, thuật toán sắp xếp nổi bọt có thể được xem là hiệu quả hơn so với sắp xếp chọn hoặc sắp xếp chèn?

  • A. Khi cần sắp xếp một mảng lớn với dữ liệu ngẫu nhiên
  • B. Khi bộ nhớ bị hạn chế và cần sắp xếp tại chỗ
  • C. Khi tốc độ sắp xếp là yếu tố quan trọng nhất
  • D. Khi cần kiểm tra nhanh xem mảng đã được sắp xếp hay chưa

Câu 8: Xét đoạn mã giả sau mô tả một thuật toán sắp xếp:

```
For i = 1 to n-1
min_index = i
For j = i+1 to n
If array[j] < array[min_index] min_index = j Swap array[i] and array[min_index] ``` Đoạn mã này mô tả thuật toán sắp xếp nào?

  • 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. Sắp xếp nhanh (Quick Sort)

Câu 9: Trong thuật toán sắp xếp chèn, giả sử bạn có một mảng con đã được sắp xếp [2, 4, 7, 9] và bạn muốn chèn phần tử mới là 5 vào đúng vị trí. Bạn cần thực hiện bao nhiêu phép so sánh để tìm vị trí chèn cho số 5?

  • A. 1
  • B. 2
  • C. 3
  • D. 4

Câu 10: Để sắp xếp một danh sách tên học sinh theo thứ tự bảng chữ cái, thuật toán sắp xếp nào sau đây là phù hợp và dễ cài đặt nhất trong các thuật toán đơn giản?

  • 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 thuật toán đều phù hợp như nhau

Câu 11: Một lập trình viên cần sắp xếp một mảng số nguyên nhỏ có kích thước khoảng 20 phần tử và mảng này có xu hướng gần như đã được sắp xếp. Thuật toán sắp xếp đơn giản nào sẽ là lựa chọn tốt nhất về hiệu suất trong trường hợp 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. Sắp xếp trộn (Merge Sort)

Câu 12: Trong thuật toán sắp xếp chọn, sau khi hoàn thành i vòng lặp, điều gì đảm bảo đúng về mảng?

  • A. i phần tử lớn nhất đã được sắp xếp ở cuối mảng
  • B. i phần tử nhỏ nhất và lớn nhất đã được sắp xếp ở hai đầu mảng
  • C. i phần tử nhỏ nhất đã được sắp xếp ở đầu mảng
  • D. Mảng đã được sắp xếp hoàn toàn

Câu 13: Cho dãy số [9, 7, 5, 3, 1]. Nếu sử dụng thuật toán sắp xếp nổi bọt, cần bao nhiêu vòng lặp (duyệt qua toàn bộ mảng) để dãy số được sắp xếp hoàn toàn theo thứ tự tăng dần?

  • A. 3
  • B. 4
  • C. 5
  • D. 6

Câu 14: Ưu điểm chính của thuật toán sắp xếp chọn so với sắp xếp nổi bọt là gì?

  • A. Độ phức tạp thời gian tốt hơn trong trường hợp trung bình
  • B. Tính ổn định (stable)
  • C. Dễ cài đặt hơn
  • D. Số lượng phép hoán đổi ít hơn

Câu 15: Thuật toán sắp xếp nào có thể dễ dàng được tối ưu hóa để dừng sớm nếu mảng đã được sắp xếp trong quá trình thực hiện?

  • 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 thuật toán đều có thể tối ưu hóa như nhau

Câu 16: Xét một mảng gồm các số nguyên dương có giá trị từ 1 đến 100. Nếu bạn muốn sắp xếp mảng này và hiệu suất là yếu tố quan trọng nhất, thuật toán sắp xếp nào sau đây có thể hiệu quả hơn các thuật toán sắp xếp so sánh (như chèn, chọn, nổi bọ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. Sắp xếp đếm (Counting Sort)

Câu 17: Trong thuật toán sắp xếp chèn, phần "đã sắp xếp" của mảng nằm ở vị trí nào?

  • A. Ở đầu mảng và mở rộng dần về phía cuối
  • B. Ở cuối mảng và mở rộng dần về phía đầu
  • C. Ở giữa mảng và mở rộng ra hai phía
  • D. Vị trí không cố định, tùy thuộc vào dữ liệu

Câu 18: Để sắp xếp một mảng có kích thước lớn chứa dữ liệu ngẫu nhiên, các thuật toán sắp xếp đơn giản (chèn, chọn, nổi bọt) thường không được khuyến khích sử dụng. Vì sao?

  • A. Vì chúng khó cài đặt
  • B. Vì độ phức tạp thời gian là O(n^2), không hiệu quả với mảng lớn
  • C. Vì chúng không ổn định
  • D. Vì chúng yêu cầu bộ nhớ phụ lớn

Câu 19: Trong các thuật toán sắp xếp đơn giản, thuật toán nào thực hiện ít phép gán nhất trong quá trình 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 đều có số phép gán tương đương

Câu 20: Nếu bạn có một mảng đã được sắp xếp và bạn thêm một phần tử mới vào cuối mảng. Thuật toán sắp xếp đơn giản nào có thể sắp xếp lại mảng một cách hiệu quả nhất (chỉ cần đưa phần tử mới vào đúng vị trí)?

  • 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 hiệu quả như nhau

Câu 21: Trong thuật toán sắp xếp nổi bọt, các phần tử "nặng hơn" (lớn hơn) "nổi" lên trên hay "chìm" xuống dưới trong mỗi vòng lặp?

  • A. "Nổi" lên trên (về phía cuối mảng)
  • B. "Chìm" xuống dưới (về phía đầu mảng)
  • C. Vừa nổi lên vừa chìm xuống tùy trường hợp
  • D. Không có hiện tượng nổi hay chìm trong sắp xếp nổi bọt

Câu 22: Để sắp xếp một mảng các đối tượng phức tạp dựa trên một thuộc tính khóa, thuật toán sắp xếp nào trong số các thuật toán đơn giản vẫn có thể áp dụng được trực tiếp, miễn là phép so sánh giữa các khóa được định nghĩa?

  • A. Sắp xếp chọn (Selection Sort) và sắp xếp nổi bọt (Bubble Sort) thôi
  • B. Sắp xếp chèn (Insertion Sort) thôi
  • C. Chỉ có sắp xếp nổi bọt (Bubble Sort)
  • D. Cả ba thuật toán: sắp xếp chèn, chọn và nổi bọt

Câu 23: Trong thuật toán sắp xếp chọn, việc tìm phần tử nhỏ nhất trong phần chưa sắp xếp của mảng được thực hiện ở vòng lặp nào (vòng lặp ngoài hay vòng lặp trong)?

  • A. Vòng lặp ngoài
  • B. Vòng lặp trong
  • C. Cả vòng lặp trong và vòng lặp ngoài
  • D. Không có vòng lặp nào thực hiện việc tìm phần tử nhỏ nhất

Câu 24: Nếu bạn cần sắp xếp một mảng tại chỗ (in-place sorting), tức là không sử dụng thêm bộ nhớ đáng kể ngoài mảng ban đầu, thuật toán nào trong số các thuật toán sắp xếp đơn giản đáp ứng yêu cầu này?

  • A. Chỉ sắp xếp chọn (Selection Sort)
  • B. Chỉ sắp xếp chèn (Insertion Sort)
  • C. Chỉ sắp xếp nổi bọt (Bubble Sort)
  • D. Cả ba thuật toán: sắp xếp chèn, chọn và nổi bọt

Câu 25: Để sắp xếp một danh sách liên kết đơn (singly linked list), thuật toán sắp xếp đơn giản nào có thể được điều chỉnh để hoạt động hiệu quả hơn so với hai thuật toán còn lại?

  • 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 không hiệu quả trên danh sách liên kết

Câu 26: Trong trường hợp tốt nhất, số lượng phép so sánh của thuật toán sắp xếp nổi bọt là O(n). Trường hợp tốt nhất này xảy ra khi nào?

  • A. Khi mảng được sắp xếp ngược
  • B. Khi mảng đã được sắp xếp
  • C. Khi mảng chứa nhiều phần tử trùng lặp
  • D. Trường hợp tốt nhất của sắp xếp nổi bọt luôn là O(n^2)

Câu 27: Nếu bạn cần sắp xếp một mảng số nguyên và biết chắc chắn rằng các số này nằm trong một phạm vi rất nhỏ (ví dụ từ 0 đến 9). Thuật toán sắp xếp nào (ngoài các thuật toán so sánh) có thể là lựa chọn tối ưu về mặt thời gian?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp nhanh (Quick Sort)
  • C. Sắp xếp đếm (Counting Sort)
  • D. Sắp xếp vun đống (Heap Sort)

Câu 28: Trong thuật toán sắp xếp chèn, để chèn một phần tử vào đúng vị trí trong phần đã sắp xếp, các phần tử lớn hơn nó sẽ được dịch chuyển về phía nào?

  • A. Về phía đầu mảng
  • B. Về phía cuối mảng (sang phải)
  • C. Vừa về đầu vừa về cuối mảng
  • D. Không có sự dịch chuyển phần tử trong sắp xếp chèn

Câu 29: Thuật toán sắp xếp nào sau đây có thể được mô tả là "tìm phần tử nhỏ nhất và đặt nó vào đúng vị trí" một cách lặp đi lặp lại?

  • 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. Sắp xếp nhanh (Quick Sort)

Câu 30: Nếu bạn có một ứng dụng cần sắp xếp dữ liệu gần như theo thời gian thực và dữ liệu mới liên tục được thêm vào. Thuật toán sắp xếp đơn giản nào có thể phù hợp để duy trì danh sách luôn được sắp xếp một cách hiệu quả khi có dữ liệu mới?

  • 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. Sắp xếp trộn (Merge Sort)

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 1: Trong thuật toán sắp xếp chèn (Insertion Sort), ở mỗi bước lặp, chúng ta chèn một phần tử vào vị trí thích hợp trong dãy con đã được sắp xếp. Giả sử bạn đang sắp xếp dãy số [5, 2, 4, 6, 1, 3] theo thứ tự tăng dần. Sau khi chèn phần tử thứ 3 (số 4), dãy số sẽ có dạng như thế nào?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 2: Thuật toán sắp xếp chọn (Selection Sort) hoạt động bằng cách lặp đi lặp lại việc tìm phần tử nhỏ nhất từ phần chưa sắp xếp và đưa nó về đầu. Trong trường hợp mảng đã được sắp xếp ngược thứ tự, số lượng phép so sánh trong thuật toán sắp xếp chọn với mảng có n phần tử là bao nhiêu?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 3: Xét thuật toán sắp xếp nổi bọt (Bubble Sort). Điều gì sẽ xảy ra sau vòng lặp đầu tiên của thuật toán này khi áp dụng lên dãy số [6, 5, 4, 3, 2, 1] để sắp xếp theo thứ tự tăng dần?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 4: Trong 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 và sắp xếp nổi bọt, thuật toán nào có số lượng phép hoán đổi (swaps) ít nhất trong trường hợp xấu nhất?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 5: Độ phức tạp thời gian trung bình của thuật toán sắp xếp chèn là O(n^2). Tuy nhiên, trong trường hợp nào thì sắp xếp chèn có độ phức tạp thời gian gần như tuyến tính O(n)?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 6: Thuật toán sắp xếp nào sau đây là ổn định (stable sorting algorithm)? Tính ổn định có nghĩa là các phần tử có khóa bằng nhau giữ nguyên thứ tự tương đối của chúng sau khi sắp xếp.

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 7: Trong tình huống nào sau đây, thuật toán sắp xếp nổi bọt có thể được xem là hiệu quả hơn so với sắp xếp chọn hoặc sắp xếp chèn?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 8: Xét đoạn mã giả sau mô tả một thuật toán sắp xếp:

```
For i = 1 to n-1
min_index = i
For j = i+1 to n
If array[j] < array[min_index] min_index = j Swap array[i] and array[min_index] ``` Đoạn mã này mô tả thuật toán sắp xếp nào?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 9: Trong thuật toán sắp xếp chèn, giả sử bạn có một mảng con đã được sắp xếp [2, 4, 7, 9] và bạn muốn chèn phần tử mới là 5 vào đúng vị trí. Bạn cần thực hiện bao nhiêu phép so sánh để tìm vị trí chèn cho số 5?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 10: Để sắp xếp một danh sách tên học sinh theo thứ tự bảng chữ cái, thuật toán sắp xếp nào sau đây là phù hợp và dễ cài đặt nhất trong các thuật toán đơn giản?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 11: Một lập trình viên cần sắp xếp một mảng số nguyên nhỏ có kích thước khoảng 20 phần tử và mảng này có xu hướng gần như đã được sắp xếp. Thuật toán sắp xếp đơn giản nào sẽ là lựa chọn tốt nhất về hiệu suất trong trường hợp này?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 12: Trong thuật toán sắp xếp chọn, sau khi hoàn thành i vòng lặp, điều gì đảm bảo đúng về mảng?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 13: Cho dãy số [9, 7, 5, 3, 1]. Nếu sử dụng thuật toán sắp xếp nổi bọt, cần bao nhiêu vòng lặp (duyệt qua toàn bộ mảng) để dãy số được sắp xếp hoàn toàn theo thứ tự tăng dần?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 14: Ưu điểm chính của thuật toán sắp xếp chọn so với sắp xếp nổi bọt là gì?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 15: Thuật toán sắp xếp nào có thể dễ dàng được tối ưu hóa để dừng sớm nếu mảng đã được sắp xếp trong quá trình thực hiện?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 16: Xét một mảng gồm các số nguyên dương có giá trị từ 1 đến 100. Nếu bạn muốn sắp xếp mảng này và hiệu suất là yếu tố quan trọng nhất, thuật toán sắp xếp nào sau đây có thể hiệu quả hơn các thuật toán sắp xếp so sánh (như chèn, chọn, nổi bọt)?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 17: Trong thuật toán sắp xếp chèn, phần 'đã sắp xếp' của mảng nằm ở vị trí nào?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 18: Để sắp xếp một mảng có kích thước lớn chứa dữ liệu ngẫu nhiên, các thuật toán sắp xếp đơn giản (chèn, chọn, nổi bọt) thường không được khuyến khích sử dụng. Vì sao?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 19: Trong các thuật toán sắp xếp đơn giản, thuật toán nào thực hiện ít phép gán nhất trong quá trình sắp xếp?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 20: Nếu bạn có một mảng đã được sắp xếp và bạn thêm một phần tử mới vào cuối mảng. Thuật toán sắp xếp đơn giản nào có thể sắp xếp lại mảng một cách hiệu quả nhất (chỉ cần đưa phần tử mới vào đúng vị trí)?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 21: Trong thuật toán sắp xếp nổi bọt, các phần tử 'nặng hơn' (lớn hơn) 'nổi' lên trên hay 'chìm' xuống dưới trong mỗi vòng lặp?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 22: Để sắp xếp một mảng các đối tượng phức tạp dựa trên một thuộc tính khóa, thuật toán sắp xếp nào trong số các thuật toán đơn giản vẫn có thể áp dụng được trực tiếp, miễn là phép so sánh giữa các khóa được định nghĩa?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 23: Trong thuật toán sắp xếp chọn, việc tìm phần tử nhỏ nhất trong phần chưa sắp xếp của mảng được thực hiện ở vòng lặp nào (vòng lặp ngoài hay vòng lặp trong)?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 24: Nếu bạn cần sắp xếp một mảng tại chỗ (in-place sorting), tức là không sử dụng thêm bộ nhớ đáng kể ngoài mảng ban đầu, thuật toán nào trong số các thuật toán sắp xếp đơn giản đáp ứng yêu cầu này?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 25: Để sắp xếp một danh sách liên kết đơn (singly linked list), thuật toán sắp xếp đơn giản nào có thể được điều chỉnh để hoạt động hiệu quả hơn so với hai thuật toán còn lại?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 26: Trong trường hợp tốt nhất, số lượng phép so sánh của thuật toán sắp xếp nổi bọt là O(n). Trường hợp tốt nhất này xảy ra khi nào?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 27: Nếu bạn cần sắp xếp một mảng số nguyên và biết chắc chắn rằng các số này nằm trong một phạm vi rất nhỏ (ví dụ từ 0 đến 9). Thuật toán sắp xếp nào (ngoài các thuật toán so sánh) có thể là lựa chọn tối ưu về mặt thời gian?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 28: Trong thuật toán sắp xếp chèn, để chèn một phần tử vào đúng vị trí trong phần đã sắp xếp, các phần tử lớn hơn nó sẽ được dịch chuyển về phía nào?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 29: Thuật toán sắp xếp nào sau đây có thể được mô tả là 'tìm phần tử nhỏ nhất và đặt nó vào đúng vị trí' một cách lặp đi lặp lại?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 2

Câu 30: Nếu bạn có một ứng dụng cần sắp xếp dữ liệu gần như theo thời gian thực và dữ liệu mới liên tục được thêm vào. Thuật toán sắp xếp đơn giản nào có thể phù hợp để duy trì danh sách luôn được sắp xếp một cách hiệu quả khi có dữ liệu mới?

Xem kết quả

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 21: Các thuật toán sắp xếp đơn giản

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 03

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 03 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong các thuật toán sắp xếp đơn giản như sắp xếp chèn, chọn và nổi bọt, tiêu chí chính để đánh giá "độ đơn giản" thường dựa trên yếu tố nào?

  • A. Tốc độ thực thi nhanh nhất trên mọi loại dữ liệu đầu vào.
  • B. Sử dụng ít bộ nhớ phụ nhất trong quá trình sắp xếp.
  • C. Phù hợp với mọi kích thước dữ liệu từ nhỏ đến lớn.
  • D. Tính dễ hiểu của thuật toán và dễ dàng cài đặt bằng mã lệnh.

Câu 2: Xét một mảng số nguyên [7, 2, 5, 1, 8]. Nếu áp dụng thuật toán sắp xếp chọn, sau bước lặp đầu tiên, mảng sẽ có dạng như thế nào?

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

Câu 3: Trong thuật toán sắp xếp chèn, khi nào số lượng phép so sánh là ít nhất?

  • A. Khi mảng đã được sắp xếp theo thứ tự tăng dần.
  • B. Khi mảng được sắp xếp theo thứ tự giảm dần.
  • C. Khi tất cả các phần tử trong mảng đều giống nhau.
  • D. Số phép so sánh luôn không đổi, không phụ thuộc vào dữ liệu đầu vào.

Câu 4: Thuật toán sắp xếp nổi bọt hoạt động dựa trên nguyên tắc nào?

  • A. Chia mảng thành các phần nhỏ và sắp xếp từng phần.
  • B. Tìm phần tử nhỏ nhất và đưa về đầu mảng ở mỗi bước.
  • C. So sánh các cặp phần tử liền kề và hoán đổi nếu chúng không đúng thứ tự.
  • D. Chèn từng phần tử vào đúng vị trí trong phần đã sắp xếp của mảng.

Câu 5: Xét về độ phức tạp thời gian trong trường hợp xấu nhất, thuật toán nào sau đây có hiệu suất kém nhất trong số các thuật toán sắp xếp đơn giản?

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

Câu 6: Trong tình huống nào thì thuật toán sắp xếp chèn được coi là hiệu quả hơn so với sắp xếp chọn và sắp xếp nổi bọt?

  • A. Khi cần sắp xếp một mảng có kích thước rất lớn.
  • B. Khi mảng đầu vào gần như đã được sắp xếp.
  • C. Khi yêu cầu bộ nhớ phụ sử dụng phải là ít nhất.
  • D. Khi cần đảm bảo tính ổn định của thuật toán sắp xếp.

Câu 7: Tính "ổn định" của thuật toán sắp xếp có ý nghĩa gì?

  • A. Thuật toán luôn cho kết quả đúng sau một số bước hữu hạn.
  • B. Thời gian thực thi của thuật toán không thay đổi khi dữ liệu thay đổi.
  • C. Thứ tự tương đối của các phần tử bằng nhau được giữ nguyên sau khi sắp xếp.
  • D. Thuật toán có thể sắp xếp được cả số và các kiểu dữ liệu phức tạp.

Câu 8: Thuật toán sắp xếp nào sau đây là "sắp xếp tại chỗ" (in-place sorting)?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp đếm (Counting Sort)
  • C. Sắp xếp nhanh (Quick Sort)
  • D. Sắp xếp chọn (Selection Sort)

Câu 9: Trong thuật toán sắp xếp nổi bọt, sau mỗi lần duyệt qua mảng (vòng lặp ngoài), phần tử nào sẽ được đưa về đúng vị trí cuối cùng của nó trong phần chưa được sắp xếp?

  • A. Phần tử lớn nhất trong phần chưa sắp xếp.
  • B. Phần tử nhỏ nhất trong phần chưa sắp xếp.
  • C. Phần tử ở 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 10: Để sắp xếp một danh sách các số điện thoại theo thứ tự chữ số, thuật toán sắp xếp nào có thể không phù hợp và kém hiệu quả 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 trên đều phù hợp và hiệu quả như nhau.

Câu 11: Giả sử bạn có một mảng gần như đã được sắp xếp hoàn chỉnh, chỉ có một vài phần tử nằm sai vị trí. Thuật toán sắp xếp nào sẽ nhanh chóng đưa mảng về trạng thái đã sắp xếp hoàn toàn?

  • 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. Sắp xếp đếm (Counting Sort)

Câu 12: Trong thuật toán sắp xếp chọn, số lượng phép hoán đổi (swap) trong trường hợp xấu nhất là bao nhiêu khi sắp xếp một mảng có n phần tử?

  • A. 0
  • B. n-1
  • C. n(n-1)/2
  • D. n^2

Câu 13: Để sắp xếp một mảng các đối tượng phức tạp dựa trên một thuộc tính khóa (key), thuật toán sắp xếp nào trong số các thuật toán đơn giản có thể cần được điều chỉnh nhiều nhất về mặt logic cài đặ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ần điều chỉnh mức độ tương đương.

Câu 14: Phát biểu nào sau đây là đúng về mối quan hệ giữa số lượng phép so sánh và số lượng phép hoán đổi trong thuật toán sắp xếp nổi bọt?

  • A. Số phép hoán đổi luôn lớn hơn số phép so sánh.
  • B. Số phép so sánh luôn lớn hơn số phép hoán đổi.
  • C. Số phép hoán đổi có thể ít hơn hoặc bằng số phép so sánh.
  • D. Số phép so sánh và số phép hoán đổi luôn bằng nhau.

Câu 15: Trong trường hợp mảng đầu vào đã được sắp xếp ngược thứ tự, thuật toán sắp xếp chèn sẽ thực hiện số lượng phép so sánh và hoán đổi như thế nào so với trường hợp mảng đã sắp xếp?

  • A. Ít phép so sánh và ít phép hoán đổi hơn.
  • B. Nhiều phép so sánh và nhiều phép hoán đổi hơn.
  • C. Số phép so sánh nhiều hơn, nhưng số phép hoán đổi ít hơn.
  • D. Số phép so sánh ít hơn, nhưng số phép hoán đổi nhiều hơn.

Câu 16: Để sắp xếp một mảng kích thước nhỏ (ví dụ, dưới 10 phần tử), thuật toán sắp xếp đơn giản nào thường được ưu tiên lựa chọn vì tính dễ cài đặt và hiệu quả tương đối?

  • A. Sắp xếp chèn (Insertion Sort)
  • B. Sắp xếp trộn (Merge Sort)
  • C. Sắp xếp nhanh (Quick Sort)
  • D. Sắp xếp đếm (Counting Sort)

Câu 17: Xét một đoạn mã giả thực hiện thuật toán sắp xếp. Đoạn mã này có cấu trúc vòng lặp lồng nhau và trong vòng lặp bên trong thực hiện so sánh và hoán đổi các phần tử liền kề. Thuật toán này có khả năng cao là thuật toán nào?

  • 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. Sắp xếp đếm (Counting Sort)

Câu 18: Thuật toán sắp xếp nào có thể được tối ưu hóa để dừng sớm hơn nếu trong một lần duyệt qua mảng không xảy ra bất kỳ phép hoán đổi nào?

  • 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. Sắp xếp đếm (Counting Sort)

Câu 19: Nếu bạn cần sắp xếp một mảng số nguyên với giá trị nằm trong một phạm vi nhỏ (ví dụ, từ 0 đến 1000), thuật toán nào sau đây có thể có độ phức tạp thời gian 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. Sắp xếp đếm (Counting Sort)

Câu 20: Trong thuật toán sắp xếp chọn, việc "chọn" phần tử nhỏ nhất trong mỗi bước lặp được thực hiện trong phần nào của mảng?

  • A. Trong toàn bộ mảng từ đầu đến cuối.
  • B. Trong phần mảng chưa được sắp xếp.
  • C. Trong phần mảng đã được sắp xếp.
  • D. Chỉ xét các phần tử liền kề nhau.

Câu 21: Ưu điểm chính của thuật toán sắp xếp chèn so với sắp xếp chọn là gì?

  • A. Sắp xếp chèn luôn có độ phức tạp thời gian tốt hơn trong mọi trường hợp.
  • B. Sắp xếp chèn sử dụng ít bộ nhớ phụ hơn sắp xếp chọn.
  • C. Sắp xếp chèn hiệu quả hơn với dữ liệu gần như đã được sắp xếp.
  • D. Sắp xếp chèn dễ cài đặt hơn sắp xếp chọn.

Câu 22: Nhược điểm lớn nhất của các thuật toán sắp xếp đơn giản (chèn, chọn, nổi bọt) khi so sánh với các thuật toán sắp xếp phức tạp (nhanh, trộn) là gì?

  • A. Độ phức tạp thời gian bậc hai O(n^2) trong trường hợp xấu nhất, kém hiệu quả với mảng lớn.
  • B. Khó cài đặt và dễ mắc lỗi lập trình hơn.
  • C. Không thể sắp xếp được dữ liệu có kích thước lớn.
  • D. Không ổn định và không phải là sắp xếp tại chỗ.

Câu 23: Trong thuật toán sắp xếp nổi bọt, điều gì quyết định số lần lặp của vòng lặp ngoài?

  • A. Giá trị lớn nhất trong mảng.
  • B. Số lượng phần tử trong mảng.
  • C. Giá trị trung bình của các phần tử trong mảng.
  • D. Mức độ đã được sắp xếp của mảng ban đầu.

Câu 24: Để sắp xếp một mảng các chuỗi ký tự theo thứ tự bảng chữ cái, thuật toán sắp xếp nào trong các thuật toán đơn giản có thể được sử dụng trực tiếp mà không cần sửa đổi đáng kể?

  • A. Sắp xếp đếm (Counting Sort)
  • B. Sắp xếp chọn (Selection Sort)
  • C. Sắp xếp nổi bọt (Bubble Sort)
  • D. Cả sắp xếp chọn, chèn và nổi bọt.

Câu 25: Trong thuật toán sắp xếp chèn, quá trình "chèn" một phần tử vào đúng vị trí trong phần đã sắp xếp thường được thực hiện bằng cách nào?

  • A. Hoán đổi phần tử đó với phần tử đầu tiên của mảng.
  • B. Tìm kiếm nhị phân vị trí phù hợp và chèn vào.
  • C. Dịch chuyển các phần tử lớn hơn sang bên phải để tạo chỗ trống và chèn phần tử vào.
  • D. Chia mảng thành hai phần và chèn vào phần phù hợp hơn.

Câu 26: Nếu bạn có một mảng chứa nhiều phần tử trùng lặp, thuật toán sắp xếp đơn giản nào sẽ không làm thay đổi thứ tự tương đối ban đầu của các phần tử trùng lặ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 trên đều không ổn định.

Câu 27: Trong thuật toán sắp xếp chọn, số lượng phép so sánh có phụ thuộc vào thứ tự ban đầu của các phần tử trong mảng không?

  • A. Có, số phép so sánh giảm đáng kể nếu mảng đã gần sắp xếp.
  • B. Không, số phép so sánh luôn cố định và không phụ thuộc vào thứ tự ban đầu.
  • C. Có, số phép so sánh tăng lên nếu mảng được sắp xếp ngược thứ tự.
  • D. Chỉ phụ thuộc vào kích thước mảng, không liên quan đến thứ tự ban đầu.

Câu 28: Thuật toán sắp xếp nào trong số các thuật toán đơn giản có thể được coi là "trực tuyến" (online algorithm), nghĩa là có thể sắp xếp dữ liệu ngay khi nhận được mà không cần biết trước toàn bộ dữ liệ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. Sắp xếp đếm (Counting Sort)

Câu 29: Để minh họa thuật toán sắp xếp nổi bọt cho người mới học, phương pháp trực quan nào thường được sử dụng để dễ hình dung sự di chuyển của các phần tử?

  • A. Sử dụng biểu đồ cột thể hiện giá trị các phần tử.
  • B. Biểu diễn mảng dưới dạng ma trận số.
  • C. Hình ảnh động hoặc video mô tả các bước so sánh và hoán đổi.
  • D. Công thức toán học mô tả quá trình sắp xếp.

Câu 30: Trong thực tế, khi nào việc sử dụng các thuật toán sắp xếp đơn giản (như chèn, chọn, nổi bọt) vẫn là lựa chọn hợp lý mặc dù có các thuật toán sắp xếp phức tạp và hiệu quả hơn?

  • A. Khi cần sắp xếp dữ liệu có kích thước cực lớn.
  • B. Khi kích thước dữ liệu nhỏ và ưu tiên tính đơn giản, dễ cài đặt.
  • C. Khi yêu cầu tốc độ sắp xếp phải là nhanh nhất tuyệt đối.
  • D. Khi cần sắp xếp dữ liệu phân tán trên nhiều máy tính.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 1: Trong các thuật toán sắp xếp đơn giản như sắp xếp chèn, chọn và nổi bọt, tiêu chí chính để đánh giá 'độ đơn giản' thường dựa trên yếu tố nào?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 2: Xét một mảng số nguyên [7, 2, 5, 1, 8]. Nếu áp dụng thuật toán sắp xếp chọn, sau bước lặp đầu tiên, mảng sẽ có dạ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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 3: Trong thuật toán sắp xếp chèn, khi nào số lượng phép so sánh là ít nhất?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 4: Thuật toán sắp xếp nổi bọt hoạt động dựa trên nguyên tắc nào?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 5: Xét về độ phức tạp thời gian trong trường hợp xấu nhất, thuật toán nào sau đây có hiệu suất kém nhất trong số các thuật toán sắp xếp đơn giản?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 6: Trong tình huống nào thì thuật toán sắp xếp chèn được coi là hiệu quả hơn so với sắp xếp chọn và sắp xếp nổi bọt?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 7: Tính 'ổn định' của thuật toán sắp xếp có ý nghĩa gì?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 8: Thuật toán sắp xếp nào sau đây là 'sắp xếp tại chỗ' (in-place sorting)?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 9: Trong thuật toán sắp xếp nổi bọt, sau mỗi lần duyệt qua mảng (vòng lặp ngoài), phần tử nào sẽ được đưa về đúng vị trí cuối cùng của nó trong phần chưa đượ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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 10: Để sắp xếp một danh sách các số điện thoại theo thứ tự chữ số, thuật toán sắp xếp nào có thể không phù hợp và kém hiệu quả nhất?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 11: Giả sử bạn có một mảng gần như đã được sắp xếp hoàn chỉnh, chỉ có một vài phần tử nằm sai vị trí. Thuật toán sắp xếp nào sẽ nhanh chóng đưa mảng về trạng thái đã sắp xếp hoàn toàn?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 12: Trong thuật toán sắp xếp chọn, số lượng phép hoán đổi (swap) trong trường hợp xấu nhất là bao nhiêu khi sắp xếp một mảng có n phần tử?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 13: Để sắp xếp một mảng các đối tượng phức tạp dựa trên một thuộc tính khóa (key), thuật toán sắp xếp nào trong số các thuật toán đơn giản có thể cần được điều chỉnh nhiều nhất về mặt logic cài đặt?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 14: Phát biểu nào sau đây là đúng về mối quan hệ giữa số lượng phép so sánh và số lượng phép hoán đổi trong thuật toán sắp xếp nổi bọt?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 15: Trong trường hợp mảng đầu vào đã được sắp xếp ngược thứ tự, thuật toán sắp xếp chèn sẽ thực hiện số lượng phép so sánh và hoán đổi như thế nào so với trường hợp mảng đã sắp xếp?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 16: Để sắp xếp một mảng kích thước nhỏ (ví dụ, dưới 10 phần tử), thuật toán sắp xếp đơn giản nào thường được ưu tiên lựa chọn vì tính dễ cài đặt và hiệu quả tương đối?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 17: Xét một đoạn mã giả thực hiện thuật toán sắp xếp. Đoạn mã này có cấu trúc vòng lặp lồng nhau và trong vòng lặp bên trong thực hiện so sánh và hoán đổi các phần tử liền kề. Thuật toán này có khả năng cao 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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 18: Thuật toán sắp xếp nào có thể được tối ưu hóa để dừng sớm hơn nếu trong một lần duyệt qua mảng không xảy ra bất kỳ phép hoán đổi nào?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 19: Nếu bạn cần sắp xếp một mảng số nguyên với giá trị nằm trong một phạm vi nhỏ (ví dụ, từ 0 đến 1000), thuật toán nào sau đây có thể có độ phức tạp thời gian tốt nhất?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 20: Trong thuật toán sắp xếp chọn, việc 'chọn' phần tử nhỏ nhất trong mỗi bước lặp được thực hiện trong phần nào của mảng?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 21: Ưu điểm chính của thuật toán sắp xếp chèn so với sắp xếp chọn là gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 22: Nhược điểm lớn nhất của các thuật toán sắp xếp đơn giản (chèn, chọn, nổi bọt) khi so sánh với các thuật toán sắp xếp phức tạp (nhanh, trộn) là gì?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 23: Trong thuật toán sắp xếp nổi bọt, điều gì quyết định số lần lặp của vòng lặp ngoài?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 24: Để sắp xếp một mảng các chuỗi ký tự theo thứ tự bảng chữ cái, thuật toán sắp xếp nào trong các thuật toán đơn giản có thể được sử dụng trực tiếp mà không cần sửa đổi đáng kể?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 25: Trong thuật toán s???p xếp chèn, quá trình 'chèn' một phần tử vào đúng vị trí trong phần đã sắp xếp thường được thực hiện bằng cách nào?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 26: Nếu bạn có một mảng chứa nhiều phần tử trùng lặp, thuật toán sắp xếp đơn giản nào sẽ không làm thay đổi thứ tự tương đối ban đầu của các phần tử trùng lặp đó?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 27: Trong thuật toán sắp xếp chọn, số lượng phép so sánh có phụ thuộc vào thứ tự ban đầu của các phần tử trong mảng không?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 28: Thuật toán sắp xếp nào trong số các thuật toán đơn giản có thể được coi là 'trực tuyến' (online algorithm), nghĩa là có thể sắp xếp dữ liệu ngay khi nhận được mà không cần biết trước toàn bộ dữ liệu?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 29: Để minh họa thuật toán sắp xếp nổi bọt cho người mới học, phương pháp trực quan nào thường được sử dụng để dễ hình dung sự di chuyển của các phần tử?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 3

Câu 30: Trong thực tế, khi nào việc sử dụng các thuật toán sắp xếp đơn giản (như chèn, chọn, nổi bọt) vẫn là lựa chọn hợp lý mặc dù có các thuật toán sắp xếp phức tạp và hiệu quả hơn?

Xem kết quả

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 21: Các thuật toán sắp xếp đơn giản

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 04

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 04 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong các thuật toán sắp xếp đơn giản, thuật toán nào hoạt động hiệu quả nhất trên dữ liệu đã gần như được sắp xếp hoàn toàn?

  • 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. Sắp xếp nhanh (Quick Sort)

Câu 2: Thuật toán sắp xếp chọn (Selection Sort) có độ phức tạp thời gian trung bình là O(n^2). Điều này có nghĩa là nếu kích thước dữ liệu đầu vào tăng gấp đôi, thời gian thực hiện thuật toán sẽ tăng lên khoảng bao nhiêu lần?

  • A. Gấp đôi (2 lần)
  • B. Không đổi
  • C. Gấp ba (3 lần)
  • D. Gấp bốn (4 lần)

Câu 3: Xét mảng [7, 2, 5, 1, 8, 3]. Sau khi thực hiện duy nhất một vòng lặp ngoài (vòng lặp đầu tiên) của thuật toán sắp xếp nổi bọt (Bubble Sort), mảng sẽ trở thành như thế nào?

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

Câu 4: Trong thuật toán sắp xếp chèn (Insertion Sort), khi nào số lượng phép so sánh là ít nhất?

  • A. Khi mảng đã được sắp xếp theo thứ tự tăng dần
  • B. Khi mảng được sắp xếp theo thứ tự giảm dần
  • C. Khi mảng chứa các phần tử giống nhau
  • D. Số phép so sánh luôn không đổi trong sắp xếp chèn

Câu 5: Thuật toán sắp xếp nào sau đây là không ổn định (unstable)?

  • 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 trên đều ổn định

Câu 6: Trong thuật toán sắp xếp chọn (Selection Sort), sau mỗi lần lặp của vòng lặp ngoài, điều gì được đảm bảo?

  • A. Mảng đã được sắp xếp hoàn toàn
  • B. Phần tử lớn nhất đã được đưa về cuối mảng
  • C. Một phần tử nhỏ nhất (hoặc lớn nhất) đã được đặt đúng vị trí của nó
  • D. Không có gì được đảm bảo sau mỗi vòng lặp

Câu 7: Cho mảng [9, 4, 6, 2, 7]. Sử dụng thuật toán sắp xếp chèn (Insertion Sort), sau bước chèn phần tử "6", mảng sẽ trở thành:

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

Câu 8: Trong các thuật toán sắp xếp đơn giản, thuật toán nào có số lượng phép hoán đổi (swaps) ít nhất trong trường hợp trung bình?

  • A. Sắp xếp chọn (Selection Sort)
  • B. Sắp xếp chèn (Insertion Sort)
  • C. Sắp xếp nổi bọt (Bubble Sort)
  • D. Cả ba thuật toán có số lượng hoán đổi tương đương

Câu 9: Giả sử bạn cần sắp xếp một danh sách nhỏ gồm khoảng 20 phần tử. Xét về độ đơn giản và hiệu quả tương đối, thuật toán sắp xếp đơn giản nào có thể là lựa chọn tốt 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. Sắp xếp trộn (Merge Sort)

Câu 10: Thuật toán sắp xếp nổi bọt (Bubble Sort) được gọi là "nổi bọt" vì điều gì?

  • A. Các phần tử nhỏ hơn dần "chìm" xuống đáy mảng
  • B. Thuật toán sử dụng nhiều bộ nhớ tạm thời như "bọt"
  • C. Các phần tử lớn hơn "nổi" lên trên (cuối mảng) sau mỗi lần duyệt
  • D. Do sự phức tạp và khó hiểu của thuật toán, giống như "bọt xà phòng"

Câu 11: Trong thuật toán sắp xếp chèn (Insertion Sort), phần nào của mảng được đảm bảo đã sắp xếp sau mỗi vòng lặp ngoài?

  • A. Phần đầu của mảng, từ vị trí đầu tiên đến vị trí hiện tại
  • B. Phần cuối của mảng, từ vị trí hiện tại đến vị trí cuối cùng
  • C. Toàn bộ mảng
  • D. Không có phần nào của mảng được đảm bảo đã sắp xếp

Câu 12: Xét mảng [3, 1, 4, 1, 5, 9]. Nếu sử dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp tăng dần, phần tử nào sẽ được chọn và hoán đổi ở vòng lặp đầu tiên?

  • A. Phần tử 3 sẽ được hoán đổi với 1
  • B. Phần tử 3 sẽ được hoán đổi với 1 (phần tử nhỏ nhất đầu tiên)
  • C. Phần tử 1 sẽ được hoán đổi với 4
  • D. Không có hoán đổi nào xảy ra ở vòng lặp đầu tiên

Câu 13: Trong trường hợp mảng đã được sắp xếp ngược thứ tự, thuật toán sắp xếp nào trong số các thuật toán đơn giản sẽ thực hiện nhiều phép so sánh và 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. Ba thuật toán có hiệu suất tương đương trong trường hợp này

Câu 14: Thuật toán sắp xếp nào sau đây là tại chỗ (in-place), tức là không yêu cầu thêm không gian bộ nhớ đáng kể ngoài mảng đầu vào?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp nhanh (Quick Sort)
  • C. Sắp xếp đếm (Counting Sort)
  • D. Sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt

Câu 15: Để sắp xếp một mảng các số nguyên theo thứ tự giảm dần bằng thuật toán sắp xếp chọn (Selection Sort), bạn cần sửa đổi thuật toán như thế nào?

  • A. Không cần sửa đổi, thuật toán sắp xếp chọn luôn sắp xếp giảm dần
  • B. Thay vì tìm phần tử nhỏ nhất, tìm phần tử lớn nhất trong phần chưa sắp xếp
  • C. Đảo ngược thứ tự so sánh trong vòng lặp bên trong
  • D. Thay đổi hướng duyệt mảng từ trái sang phải thành phải sang trái

Câu 16: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), điều gì xảy ra nếu trong một vòng lặp duyệt qua mảng, không có bất kỳ phép hoán đổi nào được thực hiện?

  • A. Thuật toán tiếp tục duyệt thêm một vòng lặp nữa
  • B. Thuật toán bắt đầu lại từ đầu mảng
  • C. Thuật toán kết thúc vì mảng đã được sắp xếp
  • D. Thuật toán báo lỗi vì không thể sắp xếp thêm

Câu 17: Giả sử bạn có một mảng gần như đã sắp xếp, chỉ có một vài phần tử nằm sai vị trí. Thuật toán sắp xếp đơn giản nào sẽ nhanh chóng đưa chúng về đúng vị trí 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 thuật toán đều có hiệu suất tương đương trong trường hợp này

Câu 18: Xét mảng [4, 2, 1, 3]. Sau khi thực hiện hai vòng lặp ngoài của thuật toán sắp xếp chọn (Selection Sort), mảng sẽ có dạng:

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

Câu 19: Trong thuật toán sắp xếp chèn (Insertion Sort), khi chèn một phần tử vào vị trí đúng trong phần đã sắp xếp, thao tác chính nào được thực hiện?

  • A. Hoán đổi phần tử hiện tại với phần tử liền trước
  • B. Dịch chuyển các phần tử lớn hơn sang bên phải để tạo chỗ trống và chèn phần tử
  • C. Tìm vị trí thích hợp bằng tìm kiếm nhị phân và chèn
  • D. Sao chép phần đã sắp xếp sang một mảng tạm thời và chèn phần tử vào đó

Câu 20: Thuật toán sắp xếp nổi bọt (Bubble Sort) có thể được tối ưu hóa bằng cách nào để giảm số lượng phép so sánh trong trường hợp tốt nhất?

  • A. Sử dụng tìm kiếm nhị phân để tìm vị trí hoán đổi
  • B. Chia mảng thành các đoạn nhỏ hơn và sắp xếp riêng lẻ
  • C. Loại bỏ các phép so sánh trùng lặp
  • D. Thêm một biến cờ để kiểm tra xem có hoán đổi nào xảy ra trong vòng lặp không

Câu 21: Ưu điểm chính của thuật toán sắp xếp chọn (Selection Sort) so với các thuật toán sắp xếp đơn giản khác là gì?

  • A. Độ phức tạp thời gian tốt hơn trong trường hợp trung bình
  • B. Tính ổn định cao hơn
  • C. Số lượng phép hoán đổi ít hơn
  • D. Dễ dàng cài đặt và tối ưu hóa hơn

Câu 22: Nếu bạn cần đảm bảo tính ổn định của thuật toán sắp xếp, thuật toán nào trong số các thuật toán sắp xếp đơn giản là lựa chọn phù hợp?

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

Câu 23: Xét mảng [5, 3, 8, 6, 7, 2]. Nếu áp dụng thuật toán sắp xếp nổi bọt (Bubble Sort), sau vòng lặp thứ hai, phần tử nào chắc chắn đã ở đúng vị trí cuối cùng của mảng đã sắp xếp?

  • B. Phần tử lớn thứ hai và phần tử lớn nhất
  • C. Phần tử nhỏ nhất
  • D. Chưa có phần tử nào chắc chắn ở đúng vị trí cuối cùng

Câu 24: Trong thuật toán sắp xếp chèn (Insertion Sort), vòng lặp bên trong (inner loop) có vai trò gì?

  • A. Tìm vị trí đúng cho phần tử hiện tại trong phần đã sắp xếp và dịch chuyển các phần tử nếu cần
  • B. Tìm phần tử nhỏ nhất trong phần chưa sắp xếp
  • C. So sánh các cặp phần tử liền kề và hoán đổi nếu sai thứ tự
  • D. Chia mảng thành hai phần để sắp xếp đệ quy

Câu 25: Nhược điểm chính của các thuật toán sắp xếp đơn giản (sắp xếp chèn, chọn, nổi bọt) là gì khi xử lý dữ liệu lớn?

  • A. Tính không ổn định
  • B. Yêu cầu bộ nhớ lớn
  • C. Độ phức tạp thời gian O(n^2) khiến chúng chậm khi n lớn
  • D. Khó cài đặt và dễ mắc lỗi

Câu 26: Trong thuật toán sắp xếp chọn (Selection Sort), số lượng phép so sánh phần tử phụ thuộc vào yếu tố nào?

  • A. Mức độ sắp xếp ban đầu của mảng
  • B. Giá trị lớn nhất và nhỏ nhất trong mảng
  • C. Số lượng phần tử trùng lặp trong mảng
  • D. Số lượng phần tử của mảng (n)

Câu 27: Phát biểu nào sau đây mô tả đúng nhất về thuật toán sắp xếp chèn (Insertion Sort)?

  • A. Chia mảng thành các phần nhỏ và sắp xếp từng phần
  • B. Xây dựng mảng đã sắp xếp bằng cách chèn từng phần tử vào đúng vị trí trong phần đã sắp xếp
  • C. Lặp đi lặp lại duyệt qua mảng, so sánh và hoán đổi các phần tử liền kề
  • D. Tìm phần tử nhỏ nhất và đặt vào vị trí đầu tiên, sau đó tiếp tục với phần còn lại của mảng

Câu 28: Để sắp xếp một mảng có kích thước rất lớn (hàng triệu phần tử), bạn nên tránh sử dụng thuật toán sắp xếp đơn giản nào?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp nhanh (Quick Sort)
  • C. Sắp xếp vun đống (Heap Sort)
  • D. Sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt

Câu 29: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), tại sao các phần tử lớn hơn lại "nổi" lên cuối mảng?

  • A. Do quá trình so sánh và hoán đổi các phần tử liền kề, phần tử lớn hơn sẽ dần được đẩy về cuối mảng
  • B. Thuật toán ưu tiên xử lý các phần tử lớn trước
  • C. Các phần tử lớn hơn có "trọng lượng" lớn hơn nên "nổi" lên
  • D. Đây là một hiện tượng ngẫu nhiên và không có lý do cụ thể

Câu 30: Nếu bạn biết rằng dữ liệu đầu vào của bạn đã gần như được sắp xếp và bạn muốn sử dụng một thuật toán sắp xếp đơn giản, bạn sẽ chọn thuật toán nào để có hiệu suất tốt 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. Không có thuật toán sắp xếp đơn giản nào hiệu quả trong trường hợp này

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 1: Trong các thuật toán sắp xếp đơn giản, thuật toán nào hoạt động hiệu quả nhất trên dữ liệu đã gần như được sắp xếp hoàn toàn?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 2: Thuật toán sắp xếp chọn (Selection Sort) có độ phức tạp thời gian trung bình là O(n^2). Điều này có nghĩa là nếu kích thước dữ liệu đầu vào tăng gấp đôi, thời gian thực hiện thuật toán sẽ tăng lên khoảng bao nhiêu lần?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 3: Xét mảng [7, 2, 5, 1, 8, 3]. Sau khi thực hiện *duy nhất một* vòng lặp ngoài (vòng lặp đầu tiên) của thuật toán sắp xếp nổi bọt (Bubble Sort), mảng sẽ trở thành như thế nào?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 4: Trong thuật toán sắp xếp chèn (Insertion Sort), khi nào số lượng phép so sánh là ít nhất?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 5: Thuật toán sắp xếp nào sau đây là *không ổn định* (unstable)?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 6: Trong thuật toán sắp xếp chọn (Selection Sort), sau mỗi lần lặp của vòng lặp ngoài, điều gì được đảm bảo?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 7: Cho mảng [9, 4, 6, 2, 7]. Sử dụng thuật toán sắp xếp chèn (Insertion Sort), sau bước chèn phần tử '6', mảng sẽ trở thành:

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 8: Trong các thuật toán sắp xếp đơn giản, thuật toán nào có số lượng phép hoán đổi (swaps) ít nhất trong trường hợp trung bình?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 9: Giả sử bạn cần sắp xếp một danh sách nhỏ gồm khoảng 20 phần tử. Xét về độ đơn giản và hiệu quả tương đối, thuật toán sắp xếp đơn giản nào có thể là lựa chọn tốt nhất?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 10: Thuật toán sắp xếp nổi bọt (Bubble Sort) được gọi là 'nổi bọt' vì điều gì?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 11: Trong thuật toán sắp xếp chèn (Insertion Sort), phần nào của mảng được đảm bảo đã sắp xếp sau mỗi vòng lặp ngoài?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 12: Xét mảng [3, 1, 4, 1, 5, 9]. Nếu sử dụng thuật toán sắp xếp chọn (Selection Sort) để sắp xếp tăng dần, phần tử nào sẽ được chọn và hoán đổi ở vòng lặp đầu tiên?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 13: Trong trường hợp mảng đã được sắp xếp ngược thứ tự, thuật toán sắp xếp nào trong số các thuật toán đơn giản sẽ thực hiện nhiều phép so sánh và hoán đổi nhất?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 14: Thuật toán sắp xếp nào sau đây là *tại chỗ* (in-place), tức là không yêu cầu thêm không gian bộ nhớ đáng kể ngoài mảng đầu vào?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 15: Để sắp xếp một mảng các số nguyên theo thứ tự giảm dần bằng thuật toán sắp xếp chọn (Selection Sort), bạn cần sửa đổi thuật toán như thế nào?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 16: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), điều gì xảy ra nếu trong một vòng lặp duyệt qua mảng, không có bất kỳ phép hoán đổi nào được thực hiện?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 17: Giả sử bạn có một mảng gần như đã sắp xếp, chỉ có một vài phần tử nằm sai vị trí. Thuật toán sắp xếp đơn giản nào sẽ nhanh chóng đưa chúng về đúng vị trí nhất?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 18: Xét mảng [4, 2, 1, 3]. Sau khi thực hiện *hai* vòng lặp ngoài của thuật toán sắp xếp chọn (Selection Sort), mảng sẽ có dạng:

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 19: Trong thuật toán sắp xếp chèn (Insertion Sort), khi chèn một phần tử vào vị trí đúng trong phần đã sắp xếp, thao tác chính nào được thực hiện?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 20: Thuật toán sắp xếp nổi bọt (Bubble Sort) có thể được tối ưu hóa bằng cách nào để giảm số lượng phép so sánh trong trường hợp tốt nhất?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 21: Ưu điểm chính của thuật toán sắp xếp chọn (Selection Sort) so với các thuật toán sắp xếp đơn giản khác là gì?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 22: Nếu bạn cần đảm bảo tính ổn định của thuật toán sắp xếp, thuật toán nào trong số các thuật toán sắp xếp đơn giản là lựa chọn phù hợp?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 23: Xét mảng [5, 3, 8, 6, 7, 2]. Nếu áp dụng thuật toán sắp xếp nổi bọt (Bubble Sort), sau vòng lặp thứ hai, phần tử nào chắc chắn đã ở đúng vị trí cuối cùng của mảng đã sắp xếp?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 24: Trong thuật toán sắp xếp chèn (Insertion Sort), vòng lặp bên trong (inner loop) có vai trò gì?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 25: Nhược điểm chính của các thuật toán sắp xếp đơn giản (sắp xếp chèn, chọn, nổi bọt) là gì khi xử lý dữ liệu lớn?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 26: Trong thuật toán sắp xếp chọn (Selection Sort), số lượng phép so sánh phần tử phụ thuộc vào yếu tố nào?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 27: Phát biểu nào sau đây mô tả đúng nhất về thuật toán sắp xếp chèn (Insertion Sort)?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 28: Để sắp xếp một mảng có kích thước rất lớn (hàng triệu phần tử), bạn nên *tránh* sử dụng thuật toán sắp xếp đơn giản nào?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 29: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), tại sao các phần tử lớn hơn lại 'nổi' lên cuối mảng?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 4

Câu 30: Nếu bạn biết rằng dữ liệu đầu vào của bạn đã gần như được sắp xếp và bạn muốn sử dụng một thuật toán sắp xếp đơn giản, bạn sẽ chọn thuật toán nào để có hiệu suất tốt nhất?

Xem kết quả

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 21: Các thuật toán sắp xếp đơn giản

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 05

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 05 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong các thuật toán sắp xếp đơn giản, thuật toán nào có độ phức tạp thời gian trung bình và trường hợp xấu nhất đều là O(n^2)?

  • 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. Sắp xếp đếm (Counting Sort)

Câu 2: Xét một mảng đã gần như được sắp xếp. Thuật toán sắp xếp đơn giản nào sẽ hoạt động hiệu quả nhất về mặt thời gian trong trường hợp 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 thuật toán trên đều hoạt động như nhau

Câu 3: Thuật toán sắp xếp chọn hoạt động bằng cách lặp đi lặp lại tìm phần tử nhỏ nhất từ phần chưa sắp xếp và đưa nó về đầu. Điều gì xảy ra với số lượng phép so sánh trong thuật toán này khi kích thước mảng tăng gấp đôi?

  • A. Số phép so sánh tăng gấp đôi.
  • B. Số phép so sánh không đổi.
  • C. Số phép so sánh tăng lên khoảng bốn lần.
  • D. Số phép so sánh tăng lên theo hàm logarit.

Câu 4: Trong thuật toán sắp xếp nổi bọt, sau mỗi vòng lặp bên ngoài, phần tử nào đã được đặt đúng vị trí cuối cùng trong mảng đã sắp xếp?

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

Câu 5: Cho đoạn mã giả sau của thuật toán sắp xếp:
```
for i from 1 to n-1:
key = arr[i]
j = i-1
while j >= 0 and arr[j] > key:
arr[j+1] = arr[j]
j = j-1
arr[j+1] = key
```
Đoạn mã này mô tả thuật toán sắp xếp nào?

  • 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. Sắp xếp nhanh (Quick Sort)

Câu 6: Thuật toán sắp xếp nào sau đây được xem là thuật toán "tại chỗ" (in-place), nghĩa là nó sắp xếp mảng mà không cần sử dụng thêm bộ nhớ đáng kể ngoài mảng đầu vào?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp đếm (Counting Sort)
  • C. Sắp xếp cơ số (Radix Sort)
  • D. Sắp xếp chọn (Selection Sort)

Câu 7: Để sắp xếp một danh sách các số nguyên nhỏ có phạm vi hẹp (ví dụ từ 0 đến 1000), thuật toán sắp xếp nào sau đây có thể hiệu quả hơn về mặt thời gian so với các thuật toán sắp xếp so sánh (như sắp xếp chèn, chọn, nổi bọt)?

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

Câu 8: Giả sử bạn có một mảng gồm 5 phần tử chưa sắp xếp. Tính số phép so sánh tối đa mà thuật toán sắp xếp nổi bọt có thể thực hiện để sắp xếp hoàn toàn mảng này.

  • A. 5
  • B. 10
  • C. 10
  • D. 25

Câu 9: Thuật toán sắp xếp nào sau đây là ổn định (stable sort)? Tính ổn định trong sắp xếp nghĩa là gì?

  • A. Sắp xếp chèn (Insertion Sort), giữ nguyên thứ tự tương đối của các phần tử bằng nhau.
  • B. Sắp xếp chọn (Selection Sort), giữ nguyên thứ tự tương đối của các phần tử bằng nhau.
  • C. Sắp xếp nhanh (Quick Sort), thay đổi thứ tự tương đối của các phần tử bằng nhau.
  • D. Sắp xếp nổi bọt (Bubble Sort), luôn thay đổi thứ tự tương đối của các phần tử bằng nhau.

Câu 10: Trong thuật toán sắp xếp chèn, khi chèn một phần tử vào vị trí đúng trong phần đã sắp xếp, thao tác chính nào được thực hiện để tạo khoảng trống cho phần tử đó?

  • A. Hoán đổi vị trí với phần tử liền kề.
  • B. Dịch chuyển các phần tử lớn hơn sang bên phải.
  • C. Xóa phần tử ở vị trí đích và chèn vào.
  • D. Tìm kiếm vị trí trống gần nhất và chèn vào.

Câu 11: Xét mảng [5, 2, 8, 1, 9]. Sau bước đầu tiên của thuật toán sắp xếp chọn, mảng sẽ trở thành:

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

Câu 12: Trong trường hợp nào thuật toán sắp xếp nổi bọt có độ phức tạp thời gian tốt nhất là O(n)?

  • A. Mảng được sắp xếp ngược.
  • B. Mảng đã được sắp xếp.
  • C. Mảng chứa nhiều phần tử trùng lặp.
  • D. Không có trường hợp nào sắp xếp nổi bọt đạt O(n).

Câu 13: Cho mảng [6, 4, 9, 2, 5]. Sau hai vòng lặp đầu tiên của thuật toán sắp xếp nổi bọt, mảng sẽ trở thành:

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

Câu 14: Ưu điểm chính của thuật toán sắp xếp chèn so với sắp xếp chọn và sắp xếp nổi bọt trong trường hợp mảng gần như đã được sắp xếp là gì?

  • A. Hiệu suất tốt hơn đáng kể khi dữ liệu gần như đã sắp xếp.
  • B. Độ phức tạp bộ nhớ thấp hơn.
  • C. Dễ dàng cài đặt hơn.
  • D. Luôn ổn định hơn trong mọi trường hợp.

Câu 15: Trong thuật toán sắp xếp đếm, để sắp xếp một mảng các số nguyên từ 0 đến k, chúng ta cần sử dụng một mảng phụ trợ (mảng đếm) có kích thước bao nhiêu?

  • A. n (bằng kích thước mảng đầu vào)
  • B. k+1 (phạm vi giá trị + 1)
  • C. log(n)
  • D. Không cần mảng phụ trợ

Câu 16: Nhược điểm chính của thuật toán sắp xếp đếm là gì?

  • A. Độ phức tạp thời gian cao trong trường hợp xấu nhất.
  • B. Không ổn định.
  • C. Chỉ hiệu quả với dữ liệu số nguyên có phạm vi nhỏ.
  • D. Yêu cầu bộ nhớ lớn hơn so với các thuật toán khác.

Câu 17: Trong tình huống nào thì việc sử dụng thuật toán sắp xếp chọn được ưu tiên hơn so với sắp xếp chèn hoặc sắp xếp nổi bọt?

  • A. Khi cần tốc độ sắp xếp nhanh nhất có thể.
  • B. Khi mảng đã gần như được sắp xếp.
  • C. Khi bộ nhớ là yếu tố hạn chế.
  • D. Khi số lượng thao tác hoán đổi phần tử cần được giảm thiểu.

Câu 18: Phát biểu nào sau đây là đúng về độ ổn định của thuật toán sắp xếp?

  • A. Thuật toán ổn định luôn có độ phức tạp thời gian tốt hơn.
  • B. Thuật toán ổn định giữ nguyên thứ tự tương đối của các phần tử có khóa bằng nhau.
  • C. Tính ổn định chỉ quan trọng khi sắp xếp số nguyên.
  • D. Mọi thuật toán sắp xếp đơn giản đều ổn định.

Câu 19: Cho mảng [3, 1, 4, 1, 5, 9, 2, 6]. Nếu sử dụng thuật toán sắp xếp chèn để sắp xếp mảng này, sau khi chèn phần tử thứ 3 (số 4), mảng sẽ có dạng:

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

Câu 20: Trong thuật toán sắp xếp nổi bọt cải tiến (optimized bubble sort), điều kiện dừng sớm được thêm vào là gì?

  • A. Khi phần tử nhỏ nhất được đưa về đầu mảng.
  • B. Khi số vòng lặp đạt đến một ngưỡng nhất định.
  • C. Khi không còn phần tử nào để so sánh.
  • D. Khi không có bất kỳ sự hoán đổi nào xảy ra trong một vòng lặp.

Câu 21: Xét một ứng dụng cần sắp xếp danh sách điểm thi của học sinh theo thứ tự giảm dần. Tiêu chí nào sau đây quan trọng nhất khi lựa chọn thuật toán sắp xếp?

  • A. Độ phức tạp thời gian trung bình để đảm bảo hiệu suất tốt cho số lượng lớn học sinh.
  • B. Tính ổn định để duy trì thứ tự ban đầu của học sinh có cùng điểm.
  • C. Độ phức tạp bộ nhớ để tiết kiệm không gian lưu trữ.
  • D. Sự đơn giản của thuật toán để dễ dàng cài đặt.

Câu 22: Thuật toán sắp xếp nào sau đây có thể được mô tả là "chia để trị" (divide and conquer)? (Mặc dù không phải thuật toán sắp xếp đơn giản)

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

Câu 23: Nếu bạn cần sắp xếp một mảng lớn các đối tượng phức tạp dựa trên một thuộc tính khóa, và tính ổn định là yếu tố quan trọng, thuật toán sắp xếp đơn giản nào sẽ là lựa chọn phù hợp 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. Không có thuật toán sắp xếp đơn giản nào phù hợp.

Câu 24: Cho mảng [7, 3, 9, 1, 6, 2]. Nếu áp dụng thuật toán sắp xếp chọn, sau vòng lặp đầu tiên, phần tử nào sẽ được đưa về vị trí đầu tiên?

  • A. 7
  • B. 3
  • C. 1
  • D. 9

Câu 25: Trong thuật toán sắp xếp nổi bọt, tại sao các phần tử lớn hơn lại "nổi" lên cuối mảng sau mỗi vòng lặp?

  • A. Do chúng được hoán đổi với phần tử nhỏ hơn ở cuối mảng.
  • B. Do chúng được liên tục hoán đổi với phần tử liền kề nhỏ hơn cho đến khi đạt vị trí đúng.
  • C. Do thuật toán ưu tiên di chuyển phần tử lớn hơn lên trước.
  • D. Đây là một hiện tượng ngẫu nhiên trong thuật toán.

Câu 26: Nếu một mảng đã được sắp xếp ngược thứ tự, thuật toán sắp xếp chèn sẽ có hiệu suất như thế nào?

  • A. Hiệu suất tốt nhất, O(n).
  • B. Hiệu suất trung bình, O(n log n).
  • C. Hiệu suất kém nhất, O(n^2).
  • D. Hiệu suất không xác định.

Câu 27: Trong thuật toán sắp xếp đếm, bước nào quan trọng để xác định vị trí chính xác của mỗi phần tử trong mảng đầu ra đã sắp xếp?

  • A. Bước đếm số lần xuất hiện của mỗi phần tử.
  • B. Bước tìm phần tử nhỏ nhất và lớn nhất.
  • C. Bước so sánh các phần tử liền kề.
  • D. Bước tính tổng tiền tố của mảng đếm.

Câu 28: So sánh số lượng hoán đổi phần tử giữa thuật toán sắp xếp chọn và sắp xếp nổi bọt khi sắp xếp một mảng có kích thước n. Phát biểu nào sau đây đúng?

  • A. Sắp xếp nổi bọt luôn thực hiện ít hoán đổi hơn.
  • B. Sắp xếp chọn thường thực hiện ít hoán đổi hơn, tối đa n-1 hoán đổi.
  • C. Số lượng hoán đổi là tương đương nhau ở cả hai thuật toán.
  • D. Không thể so sánh số lượng hoán đổi.

Câu 29: Giả sử bạn có một mảng chứa thông tin về sản phẩm (tên, giá, số lượng tồn kho). Bạn muốn sắp xếp mảng này theo giá sản phẩm, và nếu giá bằng nhau thì sắp xếp theo tên sản phẩm. Thuật toán sắp xếp ổn định nào trong số các thuật toán đơn giản sẽ phù hợ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 trên đều không phù hợp.

Câu 30: Trong thực tế, khi nào thì việc sử dụng các thuật toán sắp xếp đơn giản (như chèn, chọn, nổi bọt) vẫn được ưu tiên mặc dù có các thuật toán sắp xếp hiệu quả hơn (như trộn, nhanh)?

  • A. Khi cần sắp xếp dữ liệu có kích thước cực lớn.
  • B. Khi yêu cầu về hiệu suất là tối quan trọng.
  • C. Khi kích thước dữ liệu nhỏ và yêu cầu về độ phức tạp cài đặt thấp.
  • D. Khi cần sắp xếp dữ liệu số thực.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 1: Trong các thuật toán sắp xếp đơn giản, thuật toán nào có độ phức tạp thời gian trung bình và trường hợp xấu nhất đều là O(n^2)?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 2: Xét một mảng đã gần như được sắp xếp. Thuật toán sắp xếp đơn giản nào sẽ hoạt động hiệu quả nhất về mặt thời gian trong trường hợp này?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 3: Thuật toán sắp xếp chọn hoạt động bằng cách lặp đi lặp lại tìm phần tử nhỏ nhất từ phần chưa sắp xếp và đưa nó về đầu. Điều gì xảy ra với số lượng phép so sánh trong thuật toán này khi kích thước mảng tăng gấp đôi?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 4: Trong thuật toán sắp xếp nổi bọt, sau mỗi vòng lặp bên ngoài, phần tử nào đã được đặt đúng vị trí cuối cùng trong mảng đã sắp xếp?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 5: Cho đoạn mã giả sau của thuật toán sắp xếp:
```
for i from 1 to n-1:
key = arr[i]
j = i-1
while j >= 0 and arr[j] > key:
arr[j+1] = arr[j]
j = j-1
arr[j+1] = key
```
Đoạn mã này mô tả thuật toán sắp xếp nào?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 6: Thuật toán sắp xếp nào sau đây được xem là thuật toán 'tại chỗ' (in-place), nghĩa là nó sắp xếp mảng mà không cần sử dụng thêm bộ nhớ đáng kể ngoài mảng đầu vào?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 7: Để sắp xếp một danh sách các số nguyên nhỏ có phạm vi hẹp (ví dụ từ 0 đến 1000), thuật toán sắp xếp nào sau đây có thể hiệu quả hơn về mặt thời gian so với các thuật toán sắp xếp so sánh (như sắp xếp chèn, chọn, nổi bọt)?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 8: Giả sử bạn có một mảng gồm 5 phần tử chưa sắp xếp. Tính số phép so sánh tối đa mà thuật toán sắp xếp nổi bọt có thể thực hiện để sắp xếp hoàn toàn mảng này.

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 9: Thuật toán sắp xếp nào sau đây là ổn định (stable sort)? Tính ổn định trong sắp xếp nghĩa là gì?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 10: Trong thuật toán sắp xếp chèn, khi chèn một phần tử vào vị trí đúng trong phần đã sắp xếp, thao tác chính nào được thực hiện để tạo khoảng trống cho phần tử đó?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 11: Xét mảng [5, 2, 8, 1, 9]. Sau bước đầu tiên của thuật toán sắp xếp chọn, mảng sẽ trở thành:

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 12: Trong trường hợp nào thuật toán sắp xếp nổi bọt có độ phức tạp thời gian tốt nhất là O(n)?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 13: Cho mảng [6, 4, 9, 2, 5]. Sau hai vòng lặp đầu tiên của thuật toán sắp xếp nổi bọt, mảng sẽ trở thành:

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 14: Ưu điểm chính của thuật toán sắp xếp chèn so với sắp xếp chọn và sắp xếp nổi bọt trong trường hợp mảng gần như đã được sắp xếp là gì?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 15: Trong thuật toán sắp xếp đếm, để sắp xếp một mảng các số nguyên từ 0 đến k, chúng ta cần sử dụng một mảng phụ trợ (mảng đếm) có kích thước bao nhiêu?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 16: Nhược điểm chính của thuật toán sắp xếp đếm là gì?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 17: Trong tình huống nào thì việc sử dụng thuật toán sắp xếp chọn được ưu tiên hơn so với sắp xếp chèn hoặc sắp xếp nổi bọt?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 18: Phát biểu nào sau đây là đúng về độ ổn định của thuật toá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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 19: Cho mảng [3, 1, 4, 1, 5, 9, 2, 6]. Nếu sử dụng thuật toán sắp xếp chèn để sắp xếp mảng này, sau khi chèn phần tử thứ 3 (số 4), mảng sẽ có dạng:

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 20: Trong thuật toán sắp xếp nổi bọt cải tiến (optimized bubble sort), điều kiện dừng sớm được thêm vào là gì?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 21: Xét một ứng dụng cần sắp xếp danh sách điểm thi của học sinh theo thứ tự giảm dần. Tiêu chí nào sau đây quan trọng nhất khi lựa chọn thuật toán sắp xếp?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 22: Thuật toán sắp xếp nào sau đây có thể được mô tả là 'chia để trị' (divide and conquer)? (Mặc dù không phải thuật toán sắp xếp đơn giản)

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 23: Nếu bạn cần sắp xếp một mảng lớn các đối tượng phức tạp dựa trên một thuộc tính khóa, và tính ổn định là yếu tố quan trọng, thuật toán sắp xếp đơn giản nào sẽ là lựa chọn phù hợp nhất?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 24: Cho mảng [7, 3, 9, 1, 6, 2]. Nếu áp dụng thuật toán sắp xếp chọn, sau vòng lặp đầu tiên, phần tử nào sẽ được đưa về vị trí đầu tiên?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 25: Trong thuật toán sắp xếp nổi bọt, tại sao các phần tử lớn hơn lại 'nổi' lên cuối mảng sau mỗi vòng lặp?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 26: Nếu một mảng đã được sắp xếp ngược thứ tự, thuật toán sắp xếp chèn sẽ có hiệu suất như thế nào?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 27: Trong thuật toán sắp xếp đếm, bước nào quan trọng để xác định vị trí chính xác của mỗi phần tử trong mảng đầu ra đã sắp xếp?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 28: So sánh số lượng hoán đổi phần tử giữa thuật toán sắp xếp chọn và sắp xếp nổi bọt khi sắp xếp một mảng có kích thước n. Phát biểu nào sau đây đúng?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 29: Giả sử bạn có một mảng chứa thông tin về sản phẩm (tên, giá, số lượng tồn kho). Bạn muốn sắp xếp mảng này theo giá sản phẩm, và nếu giá bằng nhau thì sắp xếp theo tên sản phẩm. Thuật toán sắp xếp ổn định nào trong số các thuật toán đơn giản sẽ phù hợp?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 5

Câu 30: Trong thực tế, khi nào thì việc sử dụng các thuật toán sắp xếp đơn giản (như chèn, chọn, nổi bọt) vẫn được ưu tiên mặc dù có các thuật toán sắp xếp hiệu quả hơn (như trộn, nhanh)?

Xem kết quả

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 21: Các thuật toán sắp xếp đơn giản

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 06

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 06 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong 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 và sắp xếp nổi bọt, thuật toán nào có độ phức tạp thời gian trung bình và trường hợp xấu nhất đều là O(n^2), nhưng lại có số lượng phép gán (hoán đổi) phần tử ít nhất trong trường hợp trung bình?

  • 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ó số lượng phép gán tương đương

Câu 2: Xét một mảng số nguyên ban đầu chưa được sắp xếp. Nếu mục tiêu là sắp xếp mảng này sao cho các số chẵn đứng trước các số lẻ, và thứ tự tương đối của các số chẵn cũng như các số lẻ được giữ nguyên (tính ổn định), thuật toán sắp xếp đơn giản nào sau đây phù hợp nhất để hiện thực hóa mục tiêu này một cách trực tiếp (không cần sửa đổi thuật toán quá nhiều)?

  • A. Sắp xếp nhanh (Quick Sort)
  • B. Sắp xếp trộn (Merge Sort)
  • C. Sắp xếp chèn (Insertion Sort)
  • D. Sắp xếp chọn (Selection Sort)

Câu 3: Trong thuật toán sắp xếp nổi bọt, sau khi thực hiện vòng lặp thứ nhất (vòng lặp ngoài cùng), điều gì chắc chắn đúng về vị trí của các phần tử trong mảng?

  • A. Phần tử lớn nhất trong mảng đã được đưa về vị trí cuối cùng.
  • B. Phần tử nhỏ nhất trong mảng đã được đưa về vị trí đầu tiên.
  • C. Mảng đã được sắp xếp hoàn toàn.
  • D. Không có phần tử nào thay đổi vị trí.

Câu 4: Cho một mảng gồm các số [5, 2, 8, 1, 9, 4, 7]. Nếu áp dụng thuật toán sắp xếp chọn, sau hai lượt chọn phần tử nhỏ nhất và đưa về đầu, mảng sẽ có dạng như thế nào?

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

Câu 5: Xét đoạn mã giả sau mô tả một thuật toán sắp xếp:

```
For i from 1 to length(array) - 1:
key = array[i]
j = i - 1
While j >= 0 and array[j] > key:
array[j + 1] = array[j]
j = j - 1
array[j + 1] = key
```

Đoạn mã này mô tả thuật toán sắp xếp nào?

  • 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. Sắp xếp trộn (Merge Sort)

Câu 6: Trong trường hợp nào thì thuật toán sắp xếp chèn thể hiện hiệu suất tốt nhất (thời gian chạy nhanh nhất)?

  • A. Khi mảng đầu vào đã được sắp xếp.
  • B. Khi mảng đầu vào được sắp xếp ngược.
  • C. Khi mảng đầu vào chứa nhiều phần tử trùng lặp.
  • D. Hiệu suất của sắp xếp chèn không phụ thuộc vào trạng thái đầu vào.

Câu 7: Thuật toán sắp xếp nào sau đây có thể được tối ưu hóa để dừng sớm hơn nếu trong một vòng lặp không xảy ra bất kỳ phép hoán đổi nào, cho thấy mảng đã được sắp xếp?

  • 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 không thể tối ưu hóa theo cách này.

Câu 8: Phát biểu nào sau đây là sai về thuật toán sắp xếp chọn?

  • A. Độ phức tạp thời gian trường hợp xấu nhất là O(n^2).
  • B. Nó là một thuật toán sắp xếp tại chỗ (in-place).
  • C. Nó là một thuật toán sắp xếp ổn định.
  • D. Số lượng phép so sánh gần như không đổi trong mọi trường hợp.

Câu 9: Giả sử bạn có một mảng gần như đã được sắp xếp (ví dụ, chỉ có một vài phần tử nằm sai vị trí). Thuật toán sắp xếp đơn giản nào sẽ có khả năng hoạt động hiệu quả nhất trong tình huống này về mặt thời gian thực hiện?

  • 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. Cả ba thuật toán đều có hiệu quả tương đương trong trường hợp này.

Câu 10: Trong thuật toán sắp xếp chèn, khi chèn một phần tử vào vị trí đúng trong phần đã sắp xếp, thao tác chính nào được thực hiện để tạo "chỗ trống" cho phần tử đó?

  • A. Hoán đổi phần tử hiện tại với phần tử liền trước.
  • B. Dịch chuyển các phần tử lớn hơn sang bên phải.
  • C. Tìm kiếm vị trí thích hợp bằng tìm kiếm nhị phân.
  • D. Xóa phần tử ở vị trí cần chèn và thêm phần tử mới vào.

Câu 11: Cho mảng [6, 3, 9, 5, 1, 8]. Nếu sử dụng thuật toán sắp xếp nổi bọt, sau hai vòng lặp ngoài cùng, mảng sẽ trở thành:

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

Câu 12: Trong các thuật toán sắp xếp đơn giản, thuật toán nào có số lượng phép so sánh luôn là O(n^2) bất kể dữ liệu đầu vào như thế 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. Cả ba thuật toán đều có số phép so sánh thay đổi tùy trường hợp.

Câu 13: Để sắp xếp một danh sách nhỏ khoảng 20 phần tử, thuật toán sắp xếp đơn giản nào thường được coi là lựa chọn dễ cài đặt và đủ hiệu quả?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp nhanh (Quick Sort)
  • C. Sắp xếp chèn (Insertion Sort)
  • D. Sắp xếp Heap (Heap Sort)

Câu 14: Xét một ứng dụng cần sắp xếp dữ liệu liên tục được thêm vào. Thuật toán sắp xếp nào trong số các thuật toán đơn giản có thể dễ dàng thích ứng để sắp xếp dữ liệu "trực tuyến" (tức là sắp xếp ngay khi có dữ liệu mới đến mà không cần sắp xếp lại toàn bộ)?

  • 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. Cả ba thuật toán đều không phù hợp cho sắp xếp trực tuyến.

Câu 15: Trong thuật toán sắp xếp chọn, điều gì quyết định số lần lặp của vòng lặp ngoài cùng?

  • A. Số lượng phần tử trong mảng.
  • B. Giá trị lớn nhất trong mảng.
  • C. Mức độ đã sắp xếp của mảng ban đầu.
  • D. Không có vòng lặp ngoài trong sắp xếp chọn.

Câu 16: Thuật toán sắp xếp nổi bọt có tên gọi "nổi bọt" xuất phát từ đặc điểm nào trong cách thuật toán hoạt động?

  • A. Các phần tử nhỏ dần xuống đáy mảng như viên bi.
  • B. Các phần tử lớn "nổi" dần lên đầu mảng sau mỗi lần duyệt.
  • C. Thuật toán tạo ra các "bọt" dữ liệu tạm thời trong quá trình sắp xếp.
  • D. Tên gọi không liên quan đến cách thuật toán hoạt động.

Câu 17: Để sắp xếp một mảng theo thứ tự giảm dần bằng thuật toán sắp xếp chèn, bạn cần thay đổi điều kiện so sánh nào trong mã thuật toán sắp xếp chèn theo thứ tự tăng dần?

  • A. Thay đổi vòng lặp `for` từ tăng dần sang giảm dần.
  • B. Thay đổi vị trí gán `array[j + 1] = key` thành `array[j - 1] = key`.
  • C. Thay đổi điều kiện `array[j] > key` thành `array[j] < key`.
  • D. Không cần thay đổi gì, thuật toán tự động sắp xếp giảm dần.

Câu 18: Tính chất "ổn định" (stability) của thuật toán sắp xếp có ý nghĩa gì?

  • A. Thuật toán luôn cho kết quả đúng sau số lần lặp hữu hạn.
  • B. Các phần tử bằng nhau giữ nguyên thứ tự tương đối ban đầu sau khi sắp xếp.
  • C. Thuật toán có hiệu suất ổn định trong mọi trường hợp.
  • D. Thuật toán không bị ảnh hưởng bởi dữ liệu đầu vào nhiễu.

Câu 19: Trong thuật toán sắp xếp chọn, sau khi tìm thấy phần tử nhỏ nhất trong phần chưa sắp xếp, thao tác tiếp theo là gì?

  • A. Chèn phần tử nhỏ nhất vào vị trí đầu tiên của phần đã sắp xếp.
  • B. Loại bỏ phần tử nhỏ nhất khỏi mảng.
  • C. So sánh phần tử nhỏ nhất với phần tử lớn nhất còn lại.
  • D. Hoán đổi phần tử nhỏ nhất với phần tử đầu tiên của phần chưa sắp xếp.

Câu 20: Để đánh giá độ hiệu quả của thuật toán sắp xếp, yếu tố nào sau đây thường được sử dụng làm thước đo chính?

  • A. Độ phức tạp thời gian (thời gian thực hiện).
  • B. Độ phức tạp không gian (bộ nhớ sử dụng).
  • C. Tính dễ hiểu và dễ cài đặt của thuật toán.
  • D. Số dòng code cần thiết để cài đặt thuật toán.

Câu 21: Trong ba thuật toán sắp xếp đơn giản (chèn, chọn, nổi bọt), thuật toán nào có độ phức tạp không gian nhỏ nhất (tức là sử dụng ít bộ nhớ phụ 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ó độ phức tạp không gian tương đương và nhỏ nhất.

Câu 22: Giả sử bạn cần sắp xếp một mảng các đối tượng, và tiêu chí sắp xếp chính là thuộc tính "tên", nhưng nếu "tên" trùng nhau thì sắp xếp theo thuộc tính "tuổi". Thuật toán sắp xếp ổn định nào sẽ giúp bạn thực hiện việc này một cách dễ dàng bằng cách sắp xếp theo "tên" trước, sau đó theo "tuổi"?

  • A. Sắp xếp chọn (Selection Sort)
  • B. Sắp xếp chèn (Insertion Sort)
  • C. Sắp xếp nhanh (Quick Sort)
  • D. Sắp xếp Heap (Heap Sort)

Câu 23: Trong thuật toán sắp xếp nổi bọt, số lượng phép so sánh trong trường hợp tốt nhất là bao nhiêu khi mảng đã được sắp xếp?

  • A. 0
  • B. 1
  • C. n-1
  • D. n*(n-1)/2

Câu 24: Phát biểu nào sau đây mô tả đúng nhất về sự khác biệt chính giữa thuật toán sắp xếp chọn và sắp xếp chèn?

  • A. Sắp xếp chọn nhanh hơn sắp xếp chèn trong mọi trường hợp.
  • B. Sắp xếp chọn tìm phần tử nhỏ nhất và đưa về đầu, sắp xếp chèn chèn phần tử vào đúng vị trí trong phần đã sắp xếp.
  • C. Sắp xếp chọn ổn định hơn sắp xếp chèn.
  • D. 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âu 25: Cho mảng [7, 4, 2, 9, 5]. Áp dụng thuật toán sắp xếp chèn, sau khi chèn phần tử thứ ba (số 2), mảng sẽ có dạng:

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

Câu 26: Trong thuật toán sắp xếp nổi bọt, vòng lặp bên trong (inner loop) có chức năng chính là gì?

  • A. So sánh và hoán đổi các cặp phần tử liền kề nếu chúng không đúng thứ tự.
  • B. Tìm phần tử nhỏ nhất trong phần chưa sắp xếp.
  • C. Chèn phần tử hiện tại vào vị trí đúng trong phần đã sắp xếp.
  • D. Chia mảng thành các phần nhỏ hơn để sắp xếp đệ quy.

Câu 27: Khi nào thì thuật toán sắp xếp chọn được ưu tiên sử dụng hơn so với sắp xếp chèn hoặc nổi bọt?

  • A. Khi cần sắp xếp một lượng lớn dữ liệu đã gần như được sắp xếp.
  • B. Khi yêu cầu tính ổn định của thuật toán là bắt buộc.
  • C. Khi chi phí hoán đổi phần tử lớn và cần giảm thiểu số lượng hoán đổi.
  • D. Khi cần thuật toán có độ phức tạp thời gian tốt nhất trong mọi trường hợp.

Câu 28: Trong thuật toán sắp xếp chèn, phần "đã sắp xếp" của mảng nằm ở vị trí nào?

  • A. Phía bên phải của mảng và giảm dần kích thước.
  • B. Phía bên trái của mảng và tăng dần kích thước.
  • C. Ở giữa mảng và mở rộng ra hai phía.
  • D. Không có phần nào của mảng được coi là "đã sắp xếp" cho đến khi thuật toán kết thúc.

Câu 29: Nếu bạn muốn triển khai một thuật toán sắp xếp đơn giản nhất về mặt logic và dễ hiểu, thuật toán nào trong số các thuật toán đã học sẽ là lựa chọn hàng đầu?

  • 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 thuật toán đều có độ phức tạp logic tương đương.

Câu 30: Giả sử bạn có một mảng chứa các số nguyên dương nhỏ (ví dụ, trong phạm vi từ 1 đến 1000). Ngoài các thuật toán sắp xếp đơn giản đã học, bạn có biết thuật toán sắp xếp nào khác có thể hiệu quả hơn trong trường hợp này, mặc dù nó không phải là thuật toán so sánh?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp đếm (Counting Sort)
  • C. Sắp xếp nhanh (Quick Sort)
  • D. Sắp xếp Heap (Heap Sort)

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 1: Trong 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 và sắp xếp nổi bọt, thuật toán nào có độ phức tạp thời gian trung bình và trường hợp xấu nhất đều là O(n^2), nhưng lại có số lượng phép gán (hoán đổi) phần tử ít nhất trong trường hợp trung bình?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 2: Xét một mảng số nguyên ban đầu chưa được sắp xếp. Nếu mục tiêu là sắp xếp mảng này sao cho các số chẵn đứng trước các số lẻ, và thứ tự tương đối của các số chẵn cũng như các số lẻ được giữ nguyên (tính ổn định), thuật toán sắp xếp đơn giản nào sau đây phù hợp nhất để *hiện thực hóa* mục tiêu này một cách trực tiếp (không cần sửa đổi thuật toán quá nhiều)?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 3: Trong thuật toán sắp xếp nổi bọt, sau khi thực hiện *vòng lặp thứ nhất* (vòng lặp ngoài cùng), điều gì *chắc chắn* đúng về vị trí của các phần tử trong mảng?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 4: Cho một mảng gồm các số [5, 2, 8, 1, 9, 4, 7]. Nếu áp dụng thuật toán sắp xếp chọn, sau *hai* lượt chọn phần tử nhỏ nhất và đưa về đầu, mảng sẽ có dạ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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 5: Xét đoạn mã giả sau mô tả một thuật toán sắp xếp:

```
For i from 1 to length(array) - 1:
key = array[i]
j = i - 1
While j >= 0 and array[j] > key:
array[j + 1] = array[j]
j = j - 1
array[j + 1] = key
```

Đoạn mã này mô tả thuật toán sắp xếp nào?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 6: Trong trường hợp nào thì thuật toán sắp xếp chèn thể hiện hiệu suất tốt nhất (thời gian chạy nhanh nhất)?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 7: Thuật toán sắp xếp nào sau đây có thể được tối ưu hóa để dừng sớm hơn nếu trong một vòng lặp không xảy ra bất kỳ phép hoán đổi nào, cho thấy mảng đã được sắp xếp?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 8: Phát biểu nào sau đây là *sai* về thuật toán sắp xếp chọn?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 9: Giả sử bạn có một mảng gần như đã được sắp xếp (ví dụ, chỉ có một vài phần tử nằm sai vị trí). Thuật toán sắp xếp đơn giản nào sẽ có khả năng hoạt động *hiệu quả nhất* trong tình huống này về mặt thời gian thực hiện?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 10: Trong thuật toán sắp xếp chèn, khi chèn một phần tử vào vị trí đúng trong phần đã sắp xếp, thao tác chính nào được thực hiện để tạo 'chỗ trống' cho phần tử đó?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 11: Cho mảng [6, 3, 9, 5, 1, 8]. Nếu sử dụng thuật toán sắp xếp nổi bọt, sau *hai* vòng lặp ngoài cùng, mảng sẽ trở thành:

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 12: Trong các thuật toán sắp xếp đơn giản, thuật toán nào có số lượng phép so sánh *luôn* là O(n^2) bất kể dữ liệu đầu vào như thế nào?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 13: Để sắp xếp một danh sách nhỏ khoảng 20 phần tử, thuật toán sắp xếp đơn giản nào thường được coi là lựa chọn *dễ cài đặt và đủ hiệu quả*?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 14: Xét một ứng dụng cần sắp xếp dữ liệu liên tục được thêm vào. Thuật toán sắp xếp nào trong số các thuật toán đơn giản có thể *dễ dàng thích ứng* để sắp xếp dữ liệu 'trực tuyến' (tức là sắp xếp ngay khi có dữ liệu mới đến mà không cần sắp xếp lại toàn bộ)?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 15: Trong thuật toán sắp xếp chọn, điều gì quyết định số lần lặp của vòng lặp ngoài cùng?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 16: Thuật toán sắp xếp nổi bọt có tên gọi 'nổi bọt' xuất phát từ đặc điểm nào trong cách thuật toán hoạt động?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 17: Để sắp xếp một mảng theo thứ tự giảm dần bằng thuật toán sắp xếp chèn, bạn cần thay đổi điều kiện so sánh nào trong mã thuật toán sắp xếp chèn theo thứ tự tăng dần?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 18: Tính chất 'ổn định' (stability) của thuật toán sắp xếp có ý nghĩa gì?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 19: Trong thuật toán sắp xếp chọn, sau khi tìm thấy phần tử nhỏ nhất trong phần chưa sắp xếp, thao tác tiếp theo là gì?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 20: Để đánh giá độ hiệu quả của thuật toán sắp xếp, yếu tố nào sau đây thường được sử dụng làm thước đo chính?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 21: Trong ba thuật toán sắp xếp đơn giản (chèn, chọn, nổi bọt), thuật toán nào có độ phức tạp không gian *nhỏ nhất* (tức là sử dụng ít bộ nhớ phụ nhất)?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 22: Giả sử bạn cần sắp xếp một mảng các đối tượng, và tiêu chí sắp xếp chính là thuộc tính 'tên', nhưng nếu 'tên' trùng nhau thì sắp xếp theo thuộc tính 'tuổi'. Thuật toán sắp xếp ổn định nào sẽ giúp bạn thực hiện việc này một cách dễ dàng bằng cách sắp xếp theo 'tên' trước, sau đó theo 'tuổi'?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 23: Trong thuật toán sắp xếp nổi bọt, số lượng phép so sánh trong trường hợp tốt nhất là bao nhiêu khi mảng đã đượ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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 24: Phát biểu nào sau đây mô tả *đúng nhất* về sự khác biệt chính giữa thuật toán sắp xếp chọn và sắp xếp chèn?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 25: Cho mảng [7, 4, 2, 9, 5]. Áp dụng thuật toán sắp xếp chèn, sau khi chèn phần tử thứ ba (số 2), mảng sẽ có dạng:

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 26: Trong thuật toán sắp xếp nổi bọt, vòng lặp *bên trong* (inner loop) có chức năng chính là gì?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 27: Khi nào thì thuật toán sắp xếp chọn được ưu tiên sử dụng hơn so với sắp xếp chèn hoặc nổi bọt?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 28: Trong thuật toán sắp xếp chèn, phần 'đã sắp xếp' của mảng nằm ở vị trí nào?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 29: Nếu bạn muốn triển khai một thuật toán sắp xếp *đơn giản nhất* về mặt logic và dễ hiểu, thuật toán nào trong số các thuật toán đã học sẽ là lựa chọn hàng đầu?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 6

Câu 30: Giả sử bạn có một mảng chứa các số nguyên dương nhỏ (ví dụ, trong phạm vi từ 1 đến 1000). Ngoài các thuật toán sắp xếp đơn giản đã học, bạn có biết thuật toán sắp xếp nào *khác* có thể hiệu quả hơn trong trường hợp này, mặc dù nó không phải là thuật toán so sánh?

Xem kết quả

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 21: Các thuật toán sắp xếp đơn giản

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 07

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 07 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong các thuật toán sắp xếp đơn giản, thuật toán nào hoạt động hiệu quả nhất trên một mảng đã gần như được sắp xếp hoàn chỉnh?

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

Câu 2: Để sắp xếp một 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, bạn cần sửa đổi điều kiện so sánh như thế nào trong quá trình tìm phần tử nhỏ nhất?

  • A. Không cần sửa đổi, thuật toán sắp xếp chọn luôn sắp xếp giảm dần.
  • B. Thay đổi vòng lặp bên ngoài để duyệt từ cuối mảng về đầu.
  • C. Đảo ngược thứ tự các phần tử sau khi đã sắp xếp tăng dần.
  • D. Thay đổi điều kiện tìm kiếm để tìm phần tử lớn nhất thay vì nhỏ nhất trong mỗi bước.

Câu 3: Xét đoạn mã giả thuật toán sắp xếp nổi bọt sau:
```
for i from 0 to n-2:
for j from 0 to n-2-i:
if array[j] > array[j+1]:
swap(array[j], array[j+1])
```
Đoạn mã trên sẽ thực hiện bao nhiêu phép so sánh nếu mảng đầu vào có 5 phần tử?

  • A. 5
  • B. 8
  • C. 10
  • D. 25

Câu 4: Thuật toán sắp xếp chèn hoạt động dựa trên nguyên tắc nào sau đây?

  • A. Xây dựng từng bước một mảng con đã được sắp xếp và chèn các phần tử còn lại vào đúng vị trí trong mảng con đó.
  • B. Liên tục so sánh và hoán đổi các cặp phần tử liền kề cho đến khi mảng được sắp xếp.
  • C. Chọn phần tử nhỏ nhất từ mảng chưa sắp xếp và đưa về đầu mảng.
  • D. Chia mảng thành các phần nhỏ hơn, sắp xếp từng phần và sau đó trộn lại.

Câu 5: Trong trường hợp nào thì thuật toán sắp xếp nổi bọt thực hiện ít phép hoán đổi nhất?

  • A. Khi mảng được sắp xếp ngược thứ tự.
  • B. Khi mảng đã được sắp xếp theo đúng thứ tự.
  • C. Khi tất cả các phần tử trong mảng đều giống nhau.
  • D. Số phép hoán đổi không phụ thuộc vào thứ tự ban đầu của mảng.

Câu 6: Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trung bình và trường hợp xấu nhất đều là O(n^2)?

  • A. Sắp xếp chọn và sắp xếp nổi bọt
  • B. Sắp xếp chèn và sắp xếp đếm
  • C. Sắp xếp nổi bọt và sắp xếp chèn
  • D. Sắp xếp chọn và sắp xếp đếm

Câu 7: Trong thuật toán sắp xếp chọn, sau khi hoàn thành k vòng lặp đầu tiên, điều gì đảm bảo đúng về mảng?

  • A. k phần tử lớn nhất đã được sắp xếp đúng vị trí ở cuối mảng.
  • B. k phần tử đầu tiên đã được sắp xếp, nhưng có thể chưa đúng vị trí cuối cùng.
  • C. k phần tử nhỏ nhất đã được sắp xếp đúng vị trí ở đầu mảng.
  • D. Mảng đã được sắp xếp hoàn toàn.

Câu 8: Ưu điểm chính của thuật toán sắp xếp chèn so với sắp xếp chọn là gì?

  • A. Sắp xếp chèn dễ cài đặt hơn sắp xếp chọn.
  • B. Sắp xếp chèn hiệu quả hơn khi mảng đầu vào gần như đã được sắp xếp.
  • C. Sắp xếp chèn luôn có độ phức tạp thời gian tốt hơn sắp xếp chọn.
  • D. Sắp xếp chèn sử dụng ít bộ nhớ hơn sắp xếp chọn.

Câu 9: Cho mảng [5, 2, 8, 1, 9]. Sau vòng lặp đầu tiên của thuật toán sắp xếp nổi bọt, mảng sẽ trở thành:

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

Câu 10: Thuật toán sắp xếp nào sau đây là một thuật toán sắp xếp tại chỗ (in-place sorting algorithm)?

  • A. Sắp xếp đếm
  • B. Sắp xếp trộn (Merge Sort)
  • C. Sắp xếp nhanh (Quick Sort)
  • D. Sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt

Câu 11: Giả sử bạn có một mảng gồm 1000 phần tử đã được sắp xếp ngược thứ tự. Thuật toán sắp xếp nào sẽ mất nhiều thời gian thực thi nhất để sắp xếp mảng này theo thứ tự tăng dần?

  • A. Sắp xếp chèn và sắp xếp chọn có thời gian thực thi tương đương nhau.
  • B. Sắp xếp chọn sẽ nhanh hơn sắp xếp nổi bọt.
  • C. Sắp xếp nổi bọt và sắp xếp chèn sẽ mất nhiều thời gian hơn sắp xếp chọn.
  • D. Sắp xếp đếm sẽ là nhanh nhất trong trường hợp này.

Câu 12: Phát biểu nào sau đây là đúng về tính ổn định (stability) của thuật toán sắp xếp?

  • A. Một thuật toán sắp xếp ổn định duy trì thứ tự tương đối của các phần tử có giá trị bằng nhau.
  • B. Tính ổn định của thuật toán sắp xếp liên quan đến việc nó có hoạt động tốt trên dữ liệu lớn hay không.
  • C. Thuật toán sắp xếp ổn định luôn có độ phức tạp thời gian tốt hơn.
  • D. Tính ổn định chỉ quan trọng khi sắp xếp các số nguyên.

Câu 13: Trong thuật toán sắp xếp đếm, phạm vi giá trị của các phần tử đầu vào có ảnh hưởng như thế nào đến hiệu suất của thuật toán?

  • A. Phạm vi giá trị càng lớn, thuật toán càng nhanh.
  • B. Phạm vi giá trị càng lớn, thuật toán càng tốn bộ nhớ và có thể chậm hơn.
  • C. Phạm vi giá trị không ảnh hưởng đến hiệu suất của thuật toán sắp xếp đếm.
  • D. Thuật toán sắp xếp đếm chỉ hoạt động với phạm vi giá trị nhỏ hơn 1000.

Câu 14: Để sắp xếp một mảng các đối tượng (ví dụ: sinh viên với tên và điểm số) theo điểm số, thuật toán sắp xếp nào trong số các thuật toán đơn giản là phù hợp nhất nếu bạn muốn đảm bảo tính ổn định?

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

Câu 15: Xét mảng [7, 3, 9, 1, 5]. Hỏi sau 2 vòng lặp của thuật toán sắp xếp chọn, mảng sẽ có dạng như thế nào?

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

Câu 16: Trong thuật toán sắp xếp chèn, khi nào thì số phép so sánh bằng với số phép hoán đổi?

  • A. Trong trường hợp tốt nhất (mảng đã sắp xếp).
  • B. Trong trường hợp trung bình.
  • C. Số phép so sánh và hoán đổi luôn khác nhau.
  • D. Trong trường hợp xấu nhất (mảng sắp xếp ngược).

Câu 17: Cho một mảng số nguyên dương có giá trị từ 1 đến 100. Thuật toán sắp xếp nào sau đây có thể có độ phức tạp thời gian gần như tuyến tính trong trường hợp này?

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

Câu 18: Giả sử bạn cần sắp xếp một danh sách tên học sinh. Yếu tố nào sau đây quyết định hiệu quả của thuật toán sắp xếp nổi bọt so với sắp xếp chèn trong trường hợp này?

  • A. Số lượng học sinh trong danh sách.
  • B. Mức độ "gần" được sắp xếp của danh sách tên ban đầu.
  • C. Độ dài trung bình của các tên học sinh.
  • D. Thứ tự bảng chữ cái của các tên đầu tiên trong danh sách.

Câu 19: Trong thuật toán sắp xếp nổi bọt cải tiến (có cờ hiệu để kiểm tra mảng đã sắp xếp), khi nào thì thuật toán dừng lại sớm nhất?

  • A. Sau khi thực hiện đủ n-1 vòng lặp.
  • B. Khi phần tử nhỏ nhất đã về đầu mảng.
  • C. Khi không có bất kỳ phép hoán đổi nào được thực hiện trong một vòng lặp.
  • D. Khi phần tử lớn nhất đã về cuối mảng.

Câu 20: Nếu bạn có một mảng kích thước nhỏ (ví dụ: dưới 20 phần tử), việc lựa chọn thuật toán sắp xếp đơn giản nào có ảnh hưởng lớn nhất đến thời gian thực thi?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp nhanh (Quick Sort)
  • C. Không có thuật toán sắp xếp đơn giản nào phù hợp.
  • D. Sắp xếp chèn, sắp xếp chọn hoặc sắp xếp nổi bọt đều có thể chấp nhận được.

Câu 21: Trong thực tế, khi nào thì bạn nên ưu tiên sử dụng thuật toán sắp xếp chèn thay vì các thuật toán sắp xếp phức tạp hơn (ví dụ: sắp xếp nhanh, sắp xếp trộn)?

  • A. Khi cần sắp xếp một lượng dữ liệu rất lớn.
  • B. Khi mảng cần sắp xếp có kích thước nhỏ hoặc gần như đã được sắp xếp.
  • C. Khi yêu cầu về bộ nhớ là rất hạn chế.
  • D. Khi cần đảm bảo thời gian sắp xếp nhanh nhất trong mọi trường hợp.

Câu 22: Để sắp xếp một mảng các số nguyên trong phạm vi từ 0 đến 999, bạn có thể sử dụng thuật toán sắp xếp đếm. Kích thước của mảng đếm cần là bao nhiêu?

  • A. Bằng kích thước của mảng cần sắp xếp.
  • B. 100
  • C. 1000
  • D. Không xác định, phụ thuộc vào dữ liệu cụ thể.

Câu 23: Thuật toán sắp xếp nào sau đây có thể được coi là "dễ hiểu và dễ cài đặt nhất" trong số các thuật toán sắp xếp đơn giản?

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

Câu 24: Một ứng dụng cần sắp xếp dữ liệu liên tục được thêm vào. Thuật toán sắp xếp nào trong các thuật toán đơn giản có thể hiệu quả hơn khi dữ liệu đến "gần như" đã sắp xếp?

  • 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 đếm

Câu 25: Cho mảng [6, 4, 2, 8, 5]. Nếu sử dụng thuật toán sắp xếp chọn, sau khi tìm phần tử nhỏ nhất ở bước đầu tiên, mảng sẽ trở thành:

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

Câu 26: Trong thuật toán sắp xếp nổi bọt, số lượng vòng lặp cần thiết trong trường hợp xấu nhất để sắp xếp một mảng n phần tử là bao nhiêu?

  • A. n
  • B. n-1
  • C. log₂(n)
  • D. n²

Câu 27: Để sắp xếp một mảng chứa các số nguyên từ 0 đến 5, thuật toán sắp xếp đếm sẽ sử dụng thêm bộ nhớ (mảng đếm) với kích thước như thế nào so với mảng ban đầu?

  • A. Tương đương với kích thước mảng ban đầu.
  • B. Lớn hơn nhiều so với kích thước mảng ban đầu.
  • C. Nhỏ hơn nhiều so với kích thước mảng ban đầu (cố định là 6 phần tử).
  • D. Phụ thuộc vào số lượng phần tử duy nhất trong mảng ban đầu.

Câu 28: Xét một thuật toán sắp xếp mà trong đó, ở mỗi bước, phần tử nhỏ nhất được tìm thấy và đặt vào vị trí đầu tiên của phần chưa được sắp xếp. Đây là mô tả của thuật toán nào?

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

Câu 29: Nếu bạn cần viết một hàm sắp xếp đơn giản và nhanh chóng cho một mảng nhỏ các số nguyên để sử dụng trong một chương trình nhúng với bộ nhớ hạn chế, thuật toán nào là lựa chọn tốt nhất?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp nhanh (Quick Sort)
  • C. Sắp xếp đếm (Counting Sort)
  • D. Sắp xếp chèn (Insertion Sort)

Câu 30: Trong các thuật toán sắp xếp đơn giản đã học, thuật toán nào có khả năng "thích nghi" tốt nhất với dữ liệu đầu vào đã gần được sắp xếp, thể hiện qua việc giảm đáng kể số phép toán cần thực hiện?

  • 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 đếm

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 1: Trong các thuật toán sắp xếp đơn giản, thuật toán nào hoạt động hiệu quả nhất trên một mảng đã gần như được sắp xếp hoàn chỉnh?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 2: Để sắp xếp một 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, bạn cần sửa đổi điều kiện so sánh như thế nào trong quá trình tìm phần tử nhỏ nhất?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 3: Xét đoạn mã giả thuật toán sắp xếp nổi bọt sau:
```
for i from 0 to n-2:
for j from 0 to n-2-i:
if array[j] > array[j+1]:
swap(array[j], array[j+1])
```
Đoạn mã trên sẽ thực hiện bao nhiêu phép so sánh nếu mảng đầu vào có 5 phần tử?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 4: Thuật toán sắp xếp chèn hoạt động dựa trên nguyên tắc nào sau đây?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 5: Trong trường hợp nào thì thuật toán sắp xếp nổi bọt thực hiện ít phép hoán đổi nhất?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 6: Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trung bình và trường hợp xấu nhất đều là O(n^2)?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 7: Trong thuật toán sắp xếp chọn, sau khi hoàn thành k vòng lặp đầu tiên, điều gì đảm bảo đúng về mảng?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 8: Ưu điểm chính của thuật toán sắp xếp chèn so với sắp xếp chọn là gì?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 9: Cho mảng [5, 2, 8, 1, 9]. Sau vòng lặp đầu tiên của thuật toán sắp xếp nổi bọt, mảng sẽ trở thành:

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 10: Thuật toán sắp xếp nào sau đây là một thuật toán sắp xếp tại chỗ (in-place sorting algorithm)?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 11: Giả sử bạn có một mảng gồm 1000 phần tử đã được sắp xếp ngược thứ tự. Thuật toán sắp xếp nào sẽ mất nhiều thời gian thực thi nhất để sắp xếp mảng này theo thứ tự tăng dần?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 12: Phát biểu nào sau đây là đúng về tính ổn định (stability) của thuật toán sắp xếp?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 13: Trong thuật toán sắp xếp đếm, phạm vi giá trị của các phần tử đầu vào có ảnh hưởng như thế nào đến hiệu suất của thuật toán?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 14: Để sắp xếp một mảng các đối tượng (ví dụ: sinh viên với tên và điểm số) theo điểm số, thuật toán sắp xếp nào trong số các thuật toán đơn giản là phù hợp nhất nếu bạn muốn đảm bảo tính ổn định?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 15: Xét mảng [7, 3, 9, 1, 5]. Hỏi sau 2 vòng lặp của thuật toán sắp xếp chọn, mảng sẽ có dạ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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 16: Trong thuật toán sắp xếp chèn, khi nào thì số phép so sánh bằng với số phép hoán đổi?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 17: Cho một mảng số nguyên dương có giá trị từ 1 đến 100. Thuật toán sắp xếp nào sau đây có thể có độ phức tạp thời gian gần như tuyến tính trong trường hợp này?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 18: Giả sử bạn cần sắp xếp một danh sách tên học sinh. Yếu tố nào sau đây quyết định hiệu quả của thuật toán sắp xếp nổi bọt so với sắp xếp chèn trong trường hợp này?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 19: Trong thuật toán sắp xếp nổi bọt cải tiến (có cờ hiệu để kiểm tra mảng đã sắp xếp), khi nào thì thuật toán dừng lại sớm nhất?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 20: Nếu bạn có một mảng kích thước nhỏ (ví dụ: dưới 20 phần tử), việc lựa chọn thuật toán sắp xếp đơn giản nào có ảnh hưởng lớn nhất đến thời gian thực thi?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 21: Trong thực tế, khi nào thì bạn nên ưu tiên sử dụng thuật toán sắp xếp chèn thay vì các thuật toán sắp xếp phức tạp hơn (ví dụ: sắp xếp nhanh, sắp xếp trộn)?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 22: Để sắp xếp một mảng các số nguyên trong phạm vi từ 0 đến 999, bạn có thể sử dụng thuật toán sắp xếp đếm. Kích thước của mảng đếm cần là bao nhiêu?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 23: Thuật toán sắp xếp nào sau đây có thể được coi là 'dễ hiểu và dễ cài đặt nhất' trong số các thuật toán sắp xếp đơn giản?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 24: Một ứng dụng cần sắp xếp dữ liệu liên tục được thêm vào. Thuật toán sắp xếp nào trong các thuật toán đơn giản có thể hiệu quả hơn khi dữ liệu đến 'gần như' đã sắp xếp?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 25: Cho mảng [6, 4, 2, 8, 5]. Nếu sử dụng thuật toán sắp xếp chọn, sau khi tìm phần tử nhỏ nhất ở bước đầu tiên, mảng sẽ trở thành:

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 26: Trong thuật toán sắp xếp nổi bọt, số lượng vòng lặp cần thiết trong trường hợp xấu nhất để sắp xếp một mảng n phần tử là bao nhiêu?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 27: Để sắp xếp một mảng chứa các số nguyên từ 0 đến 5, thuật toán sắp xếp đếm sẽ sử dụng thêm bộ nhớ (mảng đếm) với kích thước như thế nào so với mảng ban đầu?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 28: Xét một thuật toán sắp xếp mà trong đó, ở mỗi bước, phần tử nhỏ nhất được tìm thấy và đặt vào vị trí đầu tiên của phần chưa được sắp xếp. Đây là mô tả của thuật toán nào?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 29: Nếu bạn cần viết một hàm sắp xếp đơn giản và nhanh chóng cho một mảng nhỏ các số nguyên để sử dụng trong một chương trình nhúng với bộ nhớ hạn chế, thuật toán nào là lựa chọn tốt nhất?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 7

Câu 30: Trong các thuật toán sắp xếp đơn giản đã học, thuật toán nào có khả năng 'thích nghi' tốt nhất với dữ liệu đầu vào đã gần được sắp xếp, thể hiện qua việc giảm đáng kể số phép toán cần thực hiện?

Xem kết quả

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 21: Các thuật toán sắp xếp đơn giản

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 08

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 08 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong các thuật toán sắp xếp đơn giản như sắp xếp chèn, chọn và nổi bọt, điểm chung nào sau đây là đúng?

  • A. Độ phức tạp thời gian trung bình là O(n log n).
  • B. Luôn sử dụng phương pháp chia để trị.
  • C. Thực hiện sắp xếp trực tiếp trên mảng (in-place).
  • D. Có thể sắp xếp dữ liệu trên bộ nhớ ngoài.

Câu 2: Thuật toán sắp xếp chèn (Insertion Sort) hoạt động hiệu quả nhất trong trường hợp nào sau đây?

  • A. Mảng đã được sắp xếp gần như hoàn chỉnh.
  • B. Mảng có kích thước lớn với dữ liệu ngẫu nhiên.
  • C. Mảng chứa nhiều phần tử trùng lặp.
  • D. Mảng được sắp xếp theo thứ tự ngược lại.

Câu 3: Xét đoạn mã giả sắp xếp chọn (Selection Sort) sau:
```
for i = 0 to n-2:
min_index = i
for j = i+1 to n-1:
if array[j] < array[min_index]: min_index = j swap(array[i], array[min_index]) ``` Đoạn mã trên thực hiện bao nhiêu phép so sánh khi n = 5?

  • A. 5
  • B. 10
  • C. 15
  • D. 20

Câu 4: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), sau vòng lặp thứ nhất, điều gì chắc chắn đúng về mảng?

  • A. Mảng đã được sắp xếp hoàn toàn.
  • B. Phần tử lớn nhất đã được đưa về vị trí cuối cùng.
  • C. Phần tử nhỏ nhất đã được đưa về vị trí đầu tiên.
  • D. Nửa đầu của mảng đã được sắp xếp.

Câu 5: Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trung bình và xấu nhất đều là O(n^2)?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp nhanh (Quick Sort)
  • C. Sắp xếp chọn (Selection Sort)
  • D. Sắp xếp đếm (Counting Sort)

Câu 6: Để sắp xếp một danh sách các số nguyên nhỏ có phạm vi từ 0 đến 100, thuật toán nào sau đây có thể đạt độ phức tạp thời gian O(n) trong trường hợp tốt nhất?

  • 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. Sắp xếp đếm (Counting Sort)

Câu 7: Trong tình huống nào sau đây, thuật toán sắp xếp chèn (Insertion Sort) được ưu tiên sử dụng hơn so với sắp xếp nhanh (Quick Sort) hoặc sắp xếp trộn (Merge Sort)?

  • A. Khi cần sắp xếp một lượng lớn dữ liệu trên đĩa cứng.
  • B. Khi mảng đầu vào có kích thước nhỏ hoặc gần như đã sắp xếp.
  • C. Khi yêu cầu tính ổn định của thuật toán sắp xếp là bắt buộc.
  • D. Khi cần đảm bảo độ phức tạp thời gian luôn là O(n log n).

Câu 8: Tính ổn định (stability) của thuật toán sắp xếp là gì?

  • A. Khả năng hoạt động tốt khi dữ liệu đầu vào lớn.
  • B. Khả năng sắp xếp đúng thứ tự các phần tử có giá trị khác nhau.
  • C. Khả năng giữ nguyên thứ tự tương đối của các phần tử bằng nhau.
  • D. Khả năng sử dụng ít bộ nhớ phụ.

Câu 9: Cho mảng [5, 2, 8, 1, 9, 4, 7]. Sau khi thực hiện vòng lặp đầu tiên của thuật toán sắp xếp chọn (Selection Sort), mảng sẽ trở thành:

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

Câu 10: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), số lượng phép so sánh trong trường hợp xấu nhất là bao nhiêu đối với mảng có n phần tử?

  • A. n - 1
  • B. n(n - 1) / 2
  • C. n
  • D. log₂(n)

Câu 11: Xét mảng [3, 1, 4, 1, 5, 9, 2, 6]. Nếu sử dụng thuật toán sắp xếp chèn (Insertion Sort), sau 3 lượt chèn, mảng sẽ có dạng như thế nào?

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

Câu 12: Thuật toán sắp xếp nào sau đây không phải là thuật toán sắp xếp tại chỗ (in-place)?

  • 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. Sắp xếp trộn (Merge Sort)

Câu 13: Ư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. Độ phức tạp thời gian tốt hơn trong trường hợp tốt nhất.
  • B. Tính ổn định cao hơn.
  • C. Số lượng hoán đổi (swaps) ít hơn.
  • D. Dễ cài đặt hơn.

Câu 14: Trong các thuật toán sắp xếp đơn giản, thuật toán nào có số lần hoán đổi (swaps) tối đa trong trường hợp mảng được sắp xếp ngượ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. Cả ba thuật toán đều có số lần hoán đổi tương đương.

Câu 15: Cho danh sách tên học sinh cần sắp xếp theo thứ tự bảng chữ cái. Thuật toán sắp xếp nào trong các thuật toán đơn giản sẽ phù hợp nhất nếu danh sách này đã gần như đượ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. Sắp xếp đếm (Counting Sort)

Câu 16: Điều gì xảy ra nếu bạn áp dụng thuật toán sắp xếp nổi bọt (Bubble Sort) cho một mảng đã được sắp xếp?

  • A. Thuật toán sẽ báo lỗi vì không có gì để sắp xếp.
  • B. Thuật toán vẫn chạy nhưng không thực hiện bất kỳ hoán đổi nào.
  • C. Thuật toán sẽ sắp xếp lại mảng theo thứ tự ngược lại.
  • D. Thuật toán sẽ chạy chậm hơn bình thường.

Câu 17: Để sắp xếp một mảng số nguyên không âm với giá trị lớn nhất là M, thuật toán sắp xếp đếm (Counting Sort) sử dụng thêm bộ nhớ có độ phức tạp là bao nhiêu?

  • A. O(log n)
  • B. O(n)
  • C. O(M)
  • D. O(n log n)

Câu 18: 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 vị trí đúng trong mảng con đã sắp xếp được thực hiện bằng cách nào?

  • A. Hoán đổi phần tử đó với phần tử liền kề cho đến khi đúng vị trí.
  • B. Tìm kiếm nhị phân để xác định vị trí chèn.
  • C. Sao chép mảng con đã sắp xếp và chèn phần tử vào vị trí thích hợp.
  • D. Dịch chuyển các phần tử lớn hơn sang phải để tạo chỗ trống và chèn phần tử vào.

Câu 19: Phát biểu nào sau đây là đúng về thuật toán sắp xếp chọn (Selection Sort)?

  • A. Là thuật toán ổn định.
  • B. Số lần hoán đổi luôn là O(n).
  • C. Có độ phức tạp thời gian tốt nhất là O(n).
  • D. Hoạt động tốt với dữ liệu đã sắp xếp ngược.

Câu 20: Giả sử bạn có một mảng gần như đã được sắp xếp, chỉ có một vài phần tử nằm sai vị trí. Thuật toán sắp xếp nào trong các thuật toán đơn giản sẽ nhanh nhất để sắp xếp hoàn chỉnh mả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. Sắp xếp đếm (Counting Sort)

Câu 21: Cho mảng [6, 5, 4, 3, 2, 1]. Hỏi thuật toán sắp xếp nổi bọt (Bubble Sort) cần bao nhiêu vòng lặp để sắp xếp hoàn chỉnh mảng này?

  • A. 3
  • B. 4
  • C. 5
  • D. 5

Câu 22: Trong thuật toán sắp xếp đếm (Counting Sort), bước nào sau đây là quan trọng nhất để đảm bảo tính đúng đắn của thuật toán?

  • A. Khởi tạo mảng đếm với giá trị ban đầu là 0.
  • B. Duyệt qua mảng đầu vào và đếm số lần xuất hiện của mỗi phần tử.
  • C. Tính toán vị trí chính xác của mỗi phần tử trong mảng đầu ra dựa trên mảng đếm.
  • D. Sao chép các phần tử từ mảng đếm vào mảng đầu ra.

Câu 23: Thuật toán sắp xếp nào sau đây có thể được tối ưu hóa để có độ phức tạp thời gian tốt nhất là O(n) khi mảng đã được sắp xếp?

  • 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 trộn (Merge Sort)
  • D. Sắp xếp nhanh (Quick Sort)

Câu 24: So sánh thuật toán sắp xếp chèn (Insertion Sort) và sắp xếp chọn (Selection Sort) về số lượng phép gán (assignments) trong trường hợp xấu nhất. Thuật toán nào thường thực hiện ít phép gán hơn?

  • A. Sắp xếp chọn (Selection Sort)
  • B. Sắp xếp chèn (Insertion Sort)
  • C. Cả hai thuật toán có số phép gán tương đương.
  • D. Không thể xác định nếu không biết dữ liệu cụ thể.

Câu 25: Cho đoạn chương trình sắp xếp nổi bọt với một lỗi nhỏ:
```
for i = 0 to n:
for j = 0 to n:
if array[j] > array[j+1]:
swap(array[j], array[j+1])
```
Lỗi sai trong đoạn chương trình trên là gì?

  • A. Vòng lặp bên ngoài (i) nên chạy từ 1 đến n-1.
  • B. Điều kiện so sánh trong câu lệnh if bị ngược dấu.
  • C. Vòng lặp bên trong (j) có thể truy cập ra ngoài giới hạn của mảng (j+1).
  • D. Thiếu lệnh break sau khi thực hiện hoán đổi.

Câu 26: Trong thực tế, khi nào thì thuật toán sắp xếp đếm (Counting Sort) không còn hiệu quả và nên chọn thuật toán sắp xếp khác?

  • A. Khi cần sắp xếp số lượng lớn phần tử.
  • B. Khi dữ liệu đầu vào đã gần được sắp xếp.
  • C. Khi yêu cầu tính ổn định của thuật toán.
  • D. Khi phạm vi giá trị của các phần tử quá lớn.

Câu 27: Nếu bạn cần sắp xếp một mảng các đối tượng phức tạp, trong đó việc so sánh hai đối tượng mất nhiều thời gian, thuật toán sắp xếp đơn giản nào sẽ là lựa chọn tốt nhất để giảm thiểu số lần so sánh?

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

Câu 28: Cho dãy số [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]. Hãy ước tính số phép so sánh mà thuật toán sắp xếp chèn (Insertion Sort) thực hiện để sắp xếp dãy này.

  • A. Khoảng 10
  • B. Khoảng 25
  • C. Khoảng 45
  • D. Khoảng 100

Câu 29: Trong các thuật toán sắp xếp đơn giản đã học, thuật toán nào dễ cài đặt và dễ hiểu nhất, phù hợp cho người mới bắt đầu học lập trình?

  • 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. Sắp xếp đếm (Counting Sort)

Câu 30: Nếu bạn có một hệ thống nhúng với bộ nhớ hạn chế và cần sắp xếp dữ liệu trực tiếp trong bộ nhớ đó, thuật toán sắp xếp nào trong các thuật toán đơn giản là lựa chọn phù hợp nhất vì tính "tại chỗ" (in-place) của nó?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp đếm (Counting Sort)
  • C. Sắp xếp nhanh (Quick Sort) (phiên bản không tại chỗ)
  • D. Sắp xếp chọn (Selection Sort)

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 1: Trong các thuật toán sắp xếp đơn giản như sắp xếp chèn, chọn và nổi bọt, điểm chung nào sau đây là đúng?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 2: Thuật toán sắp xếp chèn (Insertion Sort) hoạt động hiệu quả nhất trong trường hợp nào sau đây?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 3: Xét đoạn mã giả sắp xếp chọn (Selection Sort) sau:
```
for i = 0 to n-2:
min_index = i
for j = i+1 to n-1:
if array[j] < array[min_index]: min_index = j swap(array[i], array[min_index]) ``` Đoạn mã trên thực hiện bao nhiêu phép so sánh khi n = 5?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 4: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), sau vòng lặp thứ nhất, điều gì chắc chắn đúng về mảng?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 5: Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trung bình và xấu nhất đều là O(n^2)?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 6: Để sắp xếp một danh sách các số nguyên nhỏ có phạm vi từ 0 đến 100, thuật toán nào sau đây có thể đạt độ phức tạp thời gian O(n) trong trường hợp tốt nhất?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 7: Trong tình huống nào sau đây, thuật toán sắp xếp chèn (Insertion Sort) được ưu tiên sử dụng hơn so với sắp xếp nhanh (Quick Sort) hoặc sắp xếp trộn (Merge Sort)?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 8: Tính ổn định (stability) của thuật toán sắp xếp là gì?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 9: Cho mảng [5, 2, 8, 1, 9, 4, 7]. Sau khi thực hiện vòng lặp đầu tiên của thuật toán sắp xếp chọn (Selection Sort), mảng sẽ trở thành:

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 10: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), số lượng phép so sánh trong trường hợp xấu nhất là bao nhiêu đối với mảng có n phần tử?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 11: Xét mảng [3, 1, 4, 1, 5, 9, 2, 6]. Nếu sử dụng thuật toán sắp xếp chèn (Insertion Sort), sau 3 lượt chèn, mảng sẽ có dạng như thế nào?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 12: Thuật toán sắp xếp nào sau đây không phải là thuật toán sắp xếp tại chỗ (in-place)?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 13: Ư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ì?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 14: Trong các thuật toán sắp xếp đơn giản, thuật toán nào có số lần hoán đổi (swaps) tối đa trong trường hợp mảng được sắp xếp ngược?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 15: Cho danh sách tên học sinh cần sắp xếp theo thứ tự bảng chữ cái. Thuật toán sắp xếp nào trong các thuật toán đơn giản sẽ phù hợp nhất nếu danh sách này đã gần như được sắp xếp?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 16: Điều gì xảy ra nếu bạn áp dụng thuật toán sắp xếp nổi bọt (Bubble Sort) cho một mảng đã được sắp xếp?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 17: Để sắp xếp một mảng số nguyên không âm với giá trị lớn nhất là M, thuật toán sắp xếp đếm (Counting Sort) sử dụng thêm bộ nhớ có độ phức tạp là bao nhiêu?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 18: 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 vị trí đúng trong mảng con đã sắp xếp được thực hiện bằng cách nào?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 19: Phát biểu nào sau đây là đúng về thuật toán sắp xếp chọn (Selection Sort)?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 20: Giả sử bạn có một mảng gần như đã được sắp xếp, chỉ có một vài phần tử nằm sai vị trí. Thuật toán sắp xếp nào trong các thuật toán đơn giản sẽ nhanh nhất để sắp xếp hoàn chỉnh mảng này?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 21: Cho mảng [6, 5, 4, 3, 2, 1]. Hỏi thuật toán sắp xếp nổi bọt (Bubble Sort) cần bao nhiêu vòng lặp để sắp xếp hoàn chỉnh mảng này?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 22: Trong thuật toán sắp xếp đếm (Counting Sort), bước nào sau đây là quan trọng nhất để đảm bảo tính đúng đắn của thuật toán?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 23: Thuật toán sắp xếp nào sau đây có thể được tối ưu hóa để có độ phức tạp thời gian tốt nhất là O(n) khi mảng đã đượ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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 24: So sánh thuật toán sắp xếp chèn (Insertion Sort) và sắp xếp chọn (Selection Sort) về số lượng phép gán (assignments) trong trường hợp xấu nhất. Thuật toán nào thường thực hiện ít phép gán hơn?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 25: Cho đoạn chương trình sắp xếp nổi bọt với một lỗi nhỏ:
```
for i = 0 to n:
for j = 0 to n:
if array[j] > array[j+1]:
swap(array[j], array[j+1])
```
Lỗi sai trong đoạn chương trình trên là gì?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 26: Trong thực tế, khi nào thì thuật toán sắp xếp đếm (Counting Sort) không còn hiệu quả và nên chọn thuật toán sắp xếp khác?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 27: Nếu bạn cần sắp xếp một mảng các đối tượng phức tạp, trong đó việc so sánh hai đối tượng mất nhiều thời gian, thuật toán sắp xếp đơn giản nào sẽ là lựa chọn tốt nhất để giảm thiểu số lần so sánh?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 28: Cho dãy số [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]. Hãy ước tính số phép so sánh mà thuật toán sắp xếp chèn (Insertion Sort) thực hiện để sắp xếp dãy này.

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 29: Trong các thuật toán sắp xếp đơn giản đã học, thuật toán nào dễ cài đặt và dễ hiểu nhất, phù hợp cho người mới bắt đầu học lập trình?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 8

Câu 30: Nếu bạn có một hệ thống nhúng với bộ nhớ hạn chế và cần sắp xếp dữ liệu trực tiếp trong bộ nhớ đó, thuật toán sắp xếp nào trong các thuật toán đơn giản là lựa chọn phù hợp nhất vì tính 'tại chỗ' (in-place) của nó?

Xem kết quả

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 21: Các thuật toán sắp xếp đơn giản

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 09

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 09 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong thuật toán sắp xếp chèn (Insertion Sort), ở mỗi bước lặp, phần tử hiện tại được chèn vào vị trí thích hợp trong đoạn nào của mảng?

  • A. Đoạn cuối mảng chưa được sắp xếp.
  • B. Đoạn đầu mảng đã được sắp xếp.
  • C. Toàn bộ mảng ban đầu.
  • D. Đoạn giữa mảng được chọn ngẫu nhiên.

Câu 2: Xét mảng [5, 2, 8, 1, 9]. Sau bước lặp đầu tiên của thuật toán sắp xếp chọn (Selection Sort), mảng sẽ trở thành:

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

Câu 3: Thuật toán sắp xếp nổi bọt (Bubble Sort) hoạt động bằng cách lặp đi lặp lại việc so sánh các cặp phần tử liền kề và hoán đổi chúng nếu cần. Điều gì sẽ xảy ra sau khi vòng lặp ngoài cùng của thuật toán sắp xếp nổi bọt hoàn thành lần đầu tiên?

  • A. Phần tử lớn nhất trong mảng sẽ được đặt vào vị trí cuối cùng.
  • B. Phần tử nhỏ nhất trong mảng sẽ được đặt vào vị trí đầu tiên.
  • C. Mảng sẽ được sắp xếp hoàn toàn.
  • D. Không có sự thay đổi đáng kể nào trong mảng.

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

  • A. Khi mảng chứa các phần tử có giá trị trùng lặp.
  • B. Khi mảng đã được sắp xếp theo thứ tự.
  • C. Khi mảng được sắp xếp ngược thứ tự.
  • D. Hiệu suất không phụ thuộc vào trạng thái ban đầu của mảng.

Câu 5: Độ phức tạp thời gian trường hợp xấu nhất của thuật toán sắp xếp chọn (Selection Sort) là:

  • A. O(n)
  • B. O(n log n)
  • C. O(n^2)
  • D. O(log n)

Câu 6: Thuật toán sắp xếp nào sau đây được xem là "ổn định" (stable sort)? Tính ổn định trong sắp xếp có nghĩa là gì?

  • A. Sắp xếp chèn (Insertion Sort), giữ nguyên thứ tự tương đối của các phần tử bằng nhau.
  • B. Sắp xếp chọn (Selection Sort), luôn thay đổi thứ tự các phần tử bằng nhau.
  • C. Sắp xếp nổi bọt (Bubble Sort), không bao giờ giữ nguyên thứ tự các phần tử bằng nhau.
  • D. Cả ba thuật toán (chèn, chọn, nổi bọt) đều không ổn định.

Câu 7: Trong thuật toán sắp xếp nổi bọt cải tiến (Optimized Bubble Sort), điều kiện dừng sớm (early termination) được thêm vào để làm gì?

  • A. Để tăng độ phức tạp thời gian của thuật toán.
  • B. Để đảm bảo tính ổn định của thuật toán.
  • C. Để giảm số lượng phép so sánh khi mảng đã gần hoặc đã được sắp xếp.
  • D. Để sử dụng thêm bộ nhớ phụ trong quá trình sắp xếp.

Câu 8: Cho mảng [7, 3, 9, 5, 1]. Nếu sử dụng thuật toán sắp xếp chèn, sau khi chèn phần tử "9" vào đúng vị trí, mảng sẽ như thế nào?

  • A. [3, 5, 7, 9, 1]
  • B. [1, 3, 5, 7, 9]
  • C. [3, 7, 5, 9, 1]
  • D. [7, 3, 9, 5, 1] (Mảng không đổi sau bước này)

Câu 9: Xét đoạn mã giả sau về một thuật toán sắp xếp:

```
for i from 1 to length(array) - 1
min_index = i
for j from i+1 to length(array)
if array[j] < array[min_index] min_index = j swap array[i] and array[min_index] ``` Đoạn mã này mô tả thuật toán sắp xếp nào?

  • 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. Sắp xếp đếm (Counting Sort)

Câu 10: Trong tình huống nào thì thuật toán sắp xếp nổi bọt (Bubble Sort) có thể được ưu tiên sử dụng mặc dù nó có độ phức tạp thời gian trung bình và xấu nhất là O(n^2)?

  • A. Khi cần sắp xếp một lượng dữ liệu rất lớn.
  • B. Khi yêu cầu hiệu suất thời gian là ưu tiên hàng đầu.
  • C. Khi cần một thuật toán có độ phức tạp thời gian tốt nhất là O(n log n).
  • D. Khi cần một thuật toán đơn giản, dễ hiểu và cài đặt cho mục đích học tập hoặc dữ liệu nhỏ.

Câu 11: Giả sử bạn có một danh sách tên học sinh gần như đã được sắp xếp theo bảng chữ cái, chỉ có một vài học sinh bị đặt sai vị trí. Thuật toán sắp xếp đơn giản nào sẽ hiệu quả nhất để sắp xếp hoàn chỉnh danh sách 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 thuật toán đều có hiệu quả tương đương.

Câu 12: Thuật toán sắp xếp chọn (Selection Sort) thực hiện bao nhiêu phép hoán đổi (swap) trong trường hợp xấu nhất để sắp xếp một mảng có n phần tử?

  • A. n^2
  • B. n - 1
  • C. log n
  • D. n log n

Câu 13: Để sắp xếp một mảng số nguyên theo thứ tự giảm dần bằng thuật toán sắp xếp chèn (Insertion Sort), bạn cần thay đổi điều kiện so sánh như thế nào trong quá trình chèn phần tử?

  • A. Không cần thay đổi gì, sắp xếp chèn luôn sắp xếp giảm dần.
  • B. Thay đổi vòng lặp từ đầu mảng đến cuối mảng thành từ cuối mảng về đầu mảng.
  • C. Thay đổi phép so sánh khi dịch chuyển các phần tử lớn hơn để tìm vị trí chèn thành so sánh với các phần tử nhỏ hơn.
  • D. Thay thế thuật toán sắp xếp chèn bằng thuật toán sắp xếp chọn.

Câu 14: Ưu điểm chính của thuật toán sắp xếp chèn (Insertion Sort) so với sắp xếp chọn (Selection Sort) là gì?

  • A. Sắp xếp chèn luôn có độ phức tạp thời gian tốt hơn sắp xếp chọn.
  • B. Sắp xếp chèn hiệu quả hơn với dữ liệu gần như đã được sắp xếp và có thể nhanh hơn trong thực tế.
  • C. Sắp xếp chèn sử dụng ít bộ nhớ hơn sắp xếp chọn.
  • D. Sắp xếp chèn dễ cài đặt hơn sắp xếp chọn.

Câu 15: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), số lượng phép so sánh trong trường hợp xấu nhất để sắp xếp mảng n phần tử là bao nhiêu?

  • A. n * (n - 1) / 2
  • B. n - 1
  • C. n
  • D. log n

Câu 16: Cho mảng [6, 4, 9, 2, 5]. Sử dụng thuật toán sắp xếp nổi bọt, mảng sẽ trở thành như thế nào sau hai lần duyệt (hai vòng lặp ngoài)?

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

Câu 17: Trong các thuật toán sắp xếp đơn giản (chèn, chọn, nổi bọt), thuật toán nào thực hiện ít phép hoán đổi nhất trong trường hợp trung bình?

  • 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 thực hiện số phép hoán đổi tương đương.

Câu 18: Xét một mảng đã được sắp xếp ngược thứ tự. Thuật toán sắp xếp nào trong số sắp xếp chèn, chọn và nổi bọt sẽ có số lượng phép so sánh lớn nhất để sắp xếp mảng này?

  • D. Trong trường hợp xấu nhất, số lượng phép so sánh của cả ba thuật toán là tương đương nhau.

Câu 19: Nếu bạn cần sắp xếp một mảng các đối tượng phức tạp dựa trên một thuộc tính khóa và muốn đảm bảo tính ổn định của thuật toán sắp xếp, bạn sẽ chọn thuật toán nào trong số các thuật toán sắp xếp đơn giản?

  • A. Sắp xếp chèn (Insertion Sort) hoặc Sắp xếp nổi bọt (Bubble Sort)
  • B. Sắp xếp chọn (Selection Sort)
  • C. Bất kỳ thuật toán sắp xếp đơn giản nào cũng được.
  • D. Không có thuật toán sắp xếp đơn giản nào đảm bảo tính ổn định.

Câu 20: Điều gì xảy ra nếu bạn áp dụng thuật toán sắp xếp chọn (Selection Sort) cho một mảng đã được sắp xếp?

  • A. Thuật toán sẽ bỏ qua việc sắp xếp và trả về mảng ban đầu ngay lập tức.
  • B. Thuật toán sẽ sắp xếp lại mảng theo thứ tự ngược lại.
  • C. Thuật toán vẫn thực hiện tất cả các bước so sánh nhưng không thực hiện hoán đổi (hoặc hoán đổi không cần thiết).
  • D. Thuật toán sẽ báo lỗi vì mảng đã được sắp xếp.

Câu 21: Trong thuật toán sắp xếp chèn, khi một phần tử được chèn vào đúng vị trí trong đoạn đã sắp xếp, các phần tử nào bị dịch chuyển để tạo chỗ cho phần tử mới?

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

Câu 22: Để giảm số lần so sánh trong thuật toán sắp xếp nổi bọt, người ta thường sử dụng một biến cờ (flag) để theo dõi xem có lần hoán đổi nào xảy ra trong vòng lặp gần nhất hay không. Biến cờ này giúp ích như thế nào?

  • A. Giúp thuật toán dừng sớm nếu mảng đã được sắp xếp, giảm số phép so sánh trong trường hợp tốt nhất.
  • B. Giảm độ phức tạp thời gian từ O(n^2) xuống O(n log n).
  • C. Đảm bảo tính ổn định của thuật toán sắp xếp nổi bọt.
  • D. Giảm số lượng phép hoán đổi trong thuật toán.

Câu 23: Nếu bạn cần sắp xếp một mảng có kích thước nhỏ (ví dụ, dưới 20 phần tử), thuật toán sắp xếp đơn giản nào thường được coi là lựa chọn tốt nhất về mặt hiệu suất thực tế?

  • 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. Cả ba thuật toán có hiệu suất tương đương cho mảng nhỏ.

Câu 24: Thuật toán sắp xếp nào trong số sắp xếp chèn, chọn và nổi bọt được gọi là thuật toán "tại chỗ" (in-place sorting algorithm)? Thuật toán "tại chỗ" nghĩa là gì?

  • A. Cả ba thuật toán (sắp xếp chèn, chọn, nổi bọt) đều là thuật toán tại chỗ, nghĩa là chúng sử dụng không gian bộ nhớ phụ không đáng kể.
  • B. Chỉ có sắp xếp chèn là thuật toán tại chỗ.
  • C. Chỉ có sắp xếp chọn và nổi bọt là thuật toán tại chỗ.
  • D. Không có thuật toán sắp xếp đơn giản nào là thuật toán tại chỗ.

Câu 25: Trong trường hợp nào, thuật toán sắp xếp nổi bọt (Bubble Sort) sẽ thực hiện ít phép so sánh nhất?

  • A. Khi mảng được sắp xếp ngược thứ tự.
  • B. Khi mảng đã được sắp xếp hoàn toàn.
  • C. Khi mảng chứa tất cả các phần tử giống nhau.
  • D. Số phép so sánh luôn không đổi trong mọi trường hợp của thuật toán sắp xếp nổi bọt.

Câu 26: Để sắp xếp một mảng các chuỗi (string) theo thứ tự bảng chữ cái, bạn có thể sử dụng thuật toán sắp xếp chèn (Insertion Sort) không? Nếu có, cách so sánh các chuỗi trong quá trình sắp xếp như thế nào?

  • A. Có, có thể sử dụng sắp xếp chèn. Các chuỗi được so sánh theo thứ tự từ điển (lexicographical order).
  • B. Có, nhưng cần chuyển đổi chuỗi thành số trước khi sắp xếp.
  • C. Không, sắp xếp chèn chỉ áp dụng cho số nguyên.
  • D. Không, cần sử dụng thuật toán sắp xếp đặc biệt cho chuỗi.

Câu 27: Trong thuật toán sắp xếp chọn (Selection Sort), sau khi vòng lặp ngoài cùng hoàn thành i lần, điều gì đảm bảo đúng về mảng?

  • A. i phần tử cuối cùng của mảng đã được sắp xếp đúng vị trí và là i phần tử lớn nhất trong mảng.
  • B. i phần tử đầu tiên của mảng đã được sắp xếp đúng vị trí và là i phần tử nhỏ nhất trong mảng.
  • C. Toàn bộ mảng đã được sắp xếp hoàn toàn.
  • D. Không có gì đảm bảo về trạng thái sắp xếp của mảng sau i vòng lặp.

Câu 28: Khi nào việc sử dụng thuật toán sắp xếp đơn giản như sắp xếp chèn hoặc sắp xếp nổi bọt trở nên không hiệu quả và cần xem xét các thuật toán sắp xếp phức tạp hơn (ví dụ, sắp xếp trộn, sắp xếp nhanh)?

  • A. Khi mảng đã được sắp xếp một phần.
  • B. Khi cần sắp xếp các phần tử có giá trị trùng lặp.
  • C. Khi kích thước mảng cần sắp xếp trở nên rất lớn (ví dụ, hàng ngàn hoặc hàng triệu phần tử).
  • D. Không bao giờ, thuật toán sắp xếp đơn giản luôn đủ hiệu quả.

Câu 29: Trong thuật toán sắp xếp nổi bọt, nếu trong một vòng lặp duyệt qua mảng không xảy ra bất kỳ phép hoán đổi nào, điều đó có nghĩa là gì?

  • A. Có lỗi trong cài đặt thuật toán.
  • B. Cần thêm một vòng lặp nữa để hoàn tất sắp xếp.
  • C. Thuật toán sắp xếp nổi bọt không hoạt động đúng trong trường hợp này.
  • D. Mảng đã được sắp xếp hoàn toàn.

Câu 30: So sánh số lượng phép so sánh trung bình giữa thuật toán sắp xếp chèn và sắp xếp nổi bọt để sắp xếp một mảng ngẫu nhiên. Thuật toán nào thường thực hiện ít phép so sánh hơn?

  • A. Sắp xếp nổi bọt (Bubble Sort) thường thực hiện ít phép so sánh hơn trong trường hợp trung bình.
  • B. Sắp xếp chèn (Insertion Sort) thường thực hiện ít phép so sánh hơn trong trường hợp trung bình.
  • C. Cả hai thuật toán thực hiện số phép so sánh trung bình tương đương nhau.
  • D. Không thể so sánh số phép so sánh trung bình giữa hai thuật toán.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 1: Trong thuật toán sắp xếp chèn (Insertion Sort), ở mỗi bước lặp, phần tử hiện tại được chèn vào vị trí thích hợp trong đoạn nào của mảng?

2 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 2: Xét mảng [5, 2, 8, 1, 9]. Sau bước lặp đầu tiên của thuật toán sắp xếp chọn (Selection Sort), mảng sẽ trở thành:

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 3: Thuật toán sắp xếp nổi bọt (Bubble Sort) hoạt động bằng cách lặp đi lặp lại việc so sánh các cặp phần tử liền kề và hoán đổi chúng nếu cần. Điều gì sẽ xảy ra sau khi vòng lặp ngoài cùng của thuật toán sắp xếp nổi bọt hoàn thành lần đầu tiên?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 4: Trong trường hợp nào thì thuật toán sắp xếp chèn (Insertion Sort) có 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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 5: Độ phức tạp thời gian trường hợp xấu nhất của thuật toán sắp xếp chọn (Selection Sort) là:

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 6: Thuật toán sắp xếp nào sau đây được xem là 'ổn định' (stable sort)? Tính ổn định trong sắp xếp có nghĩa là gì?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 7: Trong thuật toán sắp xếp nổi bọt cải tiến (Optimized Bubble Sort), điều kiện dừng sớm (early termination) được thêm vào để làm gì?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 8: Cho mảng [7, 3, 9, 5, 1]. Nếu sử dụng thuật toán sắp xếp chèn, sau khi chèn phần tử '9' vào đúng vị trí, mảng sẽ như thế nào?

9 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 9: Xét đoạn mã giả sau về một thuật toán sắp xếp:

```
for i from 1 to length(array) - 1
min_index = i
for j from i+1 to length(array)
if array[j] < array[min_index] min_index = j swap array[i] and array[min_index] ``` Đoạn mã này mô tả thuật toán sắp xếp nào?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 10: Trong tình huống nào thì thuật toán sắp xếp nổi bọt (Bubble Sort) có thể được ưu tiên sử dụng mặc dù nó có độ phức tạp thời gian trung bình và xấu nhất là O(n^2)?

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 11: Giả sử bạn có một danh sách tên học sinh gần như đã được sắp xếp theo bảng chữ cái, chỉ có một vài học sinh bị đặt sai vị trí. Thuật toán sắp xếp đơn giản nào sẽ hiệu quả nhất để sắp xếp hoàn chỉnh danh sách này?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 12: Thuật toán sắp xếp chọn (Selection Sort) thực hiện bao nhiêu phép hoán đổi (swap) trong trường hợp xấu nhất để sắp xếp một mảng có n phần tử?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 13: Để sắp xếp một mảng số nguyên theo thứ tự giảm dần bằng thuật toán sắp xếp chèn (Insertion Sort), bạn cần thay đổi điều kiện so sánh như thế nào trong quá trình chèn phần tử?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 14: Ưu điểm chính của thuật toán sắp xếp chèn (Insertion Sort) so với sắp xếp chọn (Selection Sort) là gì?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 15: Trong thuật toán sắp xếp nổi bọt (Bubble Sort), số lượng phép so sánh trong trường hợp xấu nhất để sắp xếp mảng n phần tử là bao nhiêu?

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 16: Cho mảng [6, 4, 9, 2, 5]. Sử dụng thuật toán sắp xếp nổi bọt, mảng sẽ trở thành như thế nào sau hai lần duyệt (hai vòng lặp ngoài)?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 17: Trong các thuật toán sắp xếp đơn giản (chèn, chọn, nổi bọt), thuật toán nào thực hiện ít phép hoán đổi nhất trong trường hợp trung bình?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 18: Xét một mảng đã được sắp xếp ngược thứ tự. Thuật toán sắp xếp nào trong số sắp xếp chèn, chọn và nổi bọt sẽ có số lượng phép so sánh lớn nhất để sắp xếp mảng này?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 19: Nếu bạn cần sắp xếp một mảng các đối tượng phức tạp dựa trên một thuộc tính khóa và muốn đảm bảo tính ổn định của thuật toán sắp xếp, bạn sẽ chọn thuật toán nào trong số các thuật toán sắp xếp đơn giản?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 20: Điều gì xảy ra nếu bạn áp dụng thuật toán sắp xếp chọn (Selection Sort) cho một mảng đã được sắp xếp?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 21: Trong thuật toán sắp xếp chèn, khi một phần tử được chèn vào đúng vị trí trong đoạn đã sắp xếp, các phần tử nào bị dịch chuyển để tạo chỗ cho phần tử mới?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 22: Để giảm số lần so sánh trong thuật toán sắp xếp nổi bọt, người ta thường sử dụng một biến cờ (flag) để theo dõi xem có lần hoán đổi nào xảy ra trong vòng lặp gần nhất hay không. Biến cờ này giúp ích như thế nào?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 23: Nếu bạn cần sắp xếp một mảng có kích thước nhỏ (ví dụ, dưới 20 phần tử), thuật toán sắp xếp đơn giản nào thường được coi là lựa chọn tốt nhất về mặt hiệu suất thực tế?

24 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 24: Thuật toán sắp xếp nào trong số sắp xếp chèn, chọn và nổi bọt được gọi là thuật toán 'tại chỗ' (in-place sorting algorithm)? Thuật toán 'tại chỗ' nghĩa là gì?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 25: Trong trường hợp nào, thuật toán sắp xếp nổi bọt (Bubble Sort) sẽ thực hiện ít phép so sánh nhất?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 26: Để sắp xếp một mảng các chuỗi (string) theo thứ tự bảng chữ cái, bạn có thể sử dụng thuật toán sắp xếp chèn (Insertion Sort) không? Nếu có, cách so sánh các chuỗi trong quá trình sắp xếp như thế nào?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 27: Trong thuật toán sắp xếp chọn (Selection Sort), sau khi vòng lặp ngoài cùng hoàn thành i lần, điều gì đảm bảo đúng về mảng?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 28: Khi nào việc sử dụng thuật toán sắp xếp đơn giản như sắp xếp chèn hoặc sắp xếp nổi bọt trở nên không hiệu quả và cần xem xét các thuật toán sắp xếp phức tạp hơn (ví dụ, sắp xếp trộn, sắp xếp nhanh)?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 29: Trong thuật toán sắp xếp nổi bọt, nếu trong một vòng lặp duyệt qua mảng không xảy ra bất kỳ phép hoán đổi nào, điều đó có nghĩa là gì?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 9

Câu 30: So sánh số lượng phép so sánh trung bình giữa thuật toán sắp xếp chèn và sắp xếp nổi bọt để sắp xếp một mảng ngẫu nhiên. Thuật toán nào thường thực hiện ít phép so sánh hơn?

Xem kết quả

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 21: Các thuật toán sắp xếp đơn giản

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 10

Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản - Đề 10 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong các thuật toán sắp xếp đơn giản, thuật toán nào có độ phức tạp thời gian trung bình và trường hợp xấu nhất đều là O(n^2), nhưng lại hiệu quả nhất trên các mảng đã gần như được sắp xếp?

  • 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. Sắp xếp đếm (Counting Sort)

Câu 2: Xét đoạn mã giả sau về thuật toán sắp xếp:
```
for i from 1 to n-1:
min_index = i
for j from i+1 to n:
if array[j] < array[min_index]: min_index = j swap array[i] and array[min_index] ``` Đoạn mã này mô tả thuật toán sắp xếp nào?

  • 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. Sắp xếp nhanh (Quick Sort)

Câu 3: Thuật toán sắp xếp nổi bọt (Bubble Sort) hoạt động bằng cách lặp đi lặp lại việc so sánh các cặp phần tử liền kề và hoán đổi chúng nếu chúng không đúng thứ tự. Điều gì sẽ xảy ra sau khi vòng lặp ngoài cùng đầu tiên của thuật toán nổi bọt hoàn thành?

  • A. Mảng đã được sắp xếp hoàn toàn.
  • B. Phần tử nhỏ nhất đã được đưa về đầu mảng.
  • C. Phần tử lớn nhất đã được đưa về cuối mảng.
  • D. Không có sự thay đổi đáng kể nào trong mảng.

Câu 4: Trong thuật toán sắp xếp chèn (Insertion Sort), khi nào thì số phép so sánh là ít nhất?

  • A. Khi mảng đầu vào đã được sắp xếp theo thứ tự.
  • B. Khi mảng đầu vào được sắp xếp ngược thứ tự.
  • C. Khi mảng đầu vào chứa các phần tử giống nhau.
  • D. Số phép so sánh luôn không đổi bất kể đầu vào.

Câu 5: Thuật toán sắp xếp nào sau đây là một thuật toán sắp xếp tại chỗ (in-place), nghĩa là nó không yêu cầu thêm không gian bộ nhớ đáng kể ngoài mảng ban đầu?

  • A. Sắp xếp đếm (Counting Sort)
  • B. Sắp xếp trộn (Merge Sort)
  • C. Sắp xếp nhanh (Quick Sort)
  • D. Sắp xếp chọn (Selection Sort)

Câu 6: Giả sử bạn có một mảng gồm 1000 phần tử đã được sắp xếp gần như hoàn chỉnh, chỉ có một vài phần tử bị đặt sai vị trí một chút. Thuật toán sắp xếp đơn giản nào sẽ hiệu quả nhất để sắp xếp hoàn chỉnh mảng này?

  • 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. Sắp xếp vun đống (Heap Sort)

Câu 7: Trong thuật toán sắp xếp chọn (Selection Sort), số lần hoán đổi phần tử trong trường hợp xấu nhất là bao nhiêu?

  • A. n^2
  • B. n * log(n)
  • C. n - 1
  • D. log(n)

Câu 8: Thuật toán sắp xếp đếm (Counting Sort) phù hợp nhất để sắp xếp loại dữ liệu nào?

  • A. Các số nguyên không âm với phạm vi giá trị nhỏ.
  • B. Các số thực.
  • C. Các chuỗi ký tự.
  • D. Dữ liệu có kích thước lớn và phân tán.

Câu 9: Phát biểu nào sau đây là đúng về tính ổn định của thuật toán sắp xếp?

  • A. Thuật toán ổn định luôn có độ phức tạp thời gian tốt hơn.
  • B. Thuật toán ổn định giữ nguyên thứ tự tương đối của các phần tử có khóa bằng nhau.
  • C. Thuật toán ổn định luôn là thuật toán sắp xếp tại chỗ.
  • D. Tính ổn định không quan trọng trong thực tế.

Câu 10: Cho mảng [5, 2, 8, 1, 9, 4, 7]. Sau bước đầu tiên của thuật toán sắp xếp chọn (Selection Sort), mảng sẽ trở thành:

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

Câu 11: Xét thuật toán sắp xếp chèn. Trong quá trình sắp xếp mảng [7, 5, 3, 1], sau khi chèn phần tử 5 vào vị trí đúng, mảng sẽ có dạng như thế nào?

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

Câu 12: Để sắp xếp một danh sách tên học sinh theo thứ tự bảng chữ cái, thuật toán sắp xếp nào sau đây là phù hợp nhất nếu bạn muốn ưu tiên tính đơn giản và dễ cài đặt?

  • A. Sắp xếp trộn (Merge Sort)
  • B. Sắp xếp nhanh (Quick Sort)
  • C. Sắp xếp vun đống (Heap Sort)
  • D. Sắp xếp chèn (Insertion Sort)

Câu 13: Trong thuật toán sắp xếp nổi bọt cải tiến (Bubble Sort with optimization), điều kiện dừng sớm là gì?

  • A. Khi số lượng phần tử còn lại cần sắp xếp là 0.
  • B. Khi vòng lặp ngoài cùng chạy đến cuối mảng.
  • C. Khi không có bất kỳ sự hoán đổi nào xảy ra trong một vòng lặp.
  • D. Khi mảng đã được duyệt qua một số lần cố định.

Câu 14: So sánh thuật toán sắp xếp chọn và sắp xếp chèn về số lượng phép so sánh trong trường hợp xấu nhất. Phát biểu nào sau đây là đúng?

  • A. Cả hai thuật toán đều có số lượng phép so sánh tương tự nhau, cùng bậc O(n^2).
  • B. Sắp xếp chọ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 thực hiện ít phép so sánh hơn sắp xếp chọn.
  • D. Số phép so sánh phụ thuộc vào dữ liệu đầu vào cụ thể, không thể so sánh tổng quát.

Câu 15: Cho dãy số [10, 9, 8, 7, 6, 5]. Nếu sử dụng thuật toán sắp xếp nổi bọt, sau vòng lặp đầu tiên, dãy số sẽ trở thành:

  • A. [9, 8, 7, 6, 5, 10]
  • B. [5, 6, 7, 8, 9, 10]
  • C. [10, 5, 6, 7, 8, 9]
  • D. [9, 10, 8, 7, 6, 5]

Câu 16: Trong trường hợp nào thì thuật toán sắp xếp chèn (Insertion Sort) có độ phức tạp thời gian là O(n)?

  • A. Khi mảng đã được sắp xếp.
  • B. Khi mảng được sắp xếp ngược.
  • C. Khi tất cả các phần tử trong mảng đều giống nhau.
  • D. Độ phức tạp của sắp xếp chèn luôn là O(n^2).

Câu 17: Ưu điểm chính của thuật toán sắp xếp chọn (Selection Sort) so với các thuật toán sắp xếp đơn giản khác là gì?

  • A. Độ phức tạp thời gian tốt hơn trong trường hợp trung bình.
  • B. Số lần hoán đổi phần tử ít hơn so với sắp xếp nổi bọt và sắp xếp chèn.
  • C. Tính ổn định cao hơn so với các thuật toán khác.
  • D. Dễ dàng cài đặt song song.

Câu 18: Nhược điểm lớn nhất của thuật toán sắp xếp nổi bọt (Bubble Sort) là gì?

  • A. Không phải là thuật toán sắp xếp tại chỗ.
  • B. Khó cài đặt và dễ gây lỗi.
  • C. Độ phức tạp thời gian O(n^2) trong trường hợp trung bình và xấu nhất, không hiệu quả với mảng lớn.
  • D. Không ổn định trong quá trình sắp xếp.

Câu 19: Trong các thuật toán sắp xếp đơn giản đã học (chèn, chọn, nổi bọt), thuật toán nào thực hiện nhiều phép hoán đổi nhất trong trường hợp mảng được sắp xếp ngược?

  • 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 thuật toán đều có số lượng hoán đổi như nhau.

Câu 20: Để sắp xếp điểm thi của 100 học sinh, trong đó điểm số là số nguyên từ 0 đến 10, thuật toán nào sau đây có thể đạt độ phức tạp thời gian O(n+k) với k là phạm vi điểm (trong trường hợp này k=10)?

  • 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. Sắp xếp đếm (Counting Sort)

Câu 21: Giả sử bạn cần sắp xếp một mảng các đối tượng phức tạp, việc so sánh hai đối tượng mất nhiều thời gian. Thuật toán sắp xếp đơn giản nào có xu hướng thực hiện ít phép so sánh 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. Sắp xếp nhanh (Quick Sort)

Câu 22: Trong thuật toán sắp xếp chèn, phần "đã sắp xếp" của mảng ban đầu nằm ở vị trí nào?

  • A. Cuối mảng và thu hẹp dần.
  • B. Đầu mảng và mở rộng dần.
  • C. Giữa mảng và mở rộng ra hai phía.
  • D. Vị trí không cố định và thay đổi ngẫu nhiên.

Câu 23: Thuật toán sắp xếp nào sau đây có thể được tối ưu hóa để có độ phức tạp thời gian tốt nhất là O(n) khi mảng đã được sắp xếp?

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

Câu 24: Khi nào nên sử dụng thuật toán sắp xếp nổi bọt (Bubble Sort) mặc dù nó không phải là thuật toán hiệu quả nhất?

  • A. Khi cần sắp xếp mảng có kích thước lớn.
  • B. Khi yêu cầu độ phức tạp thời gian tốt nhất.
  • C. Khi cần tính ổn định của thuật toán sắp xếp.
  • D. Khi mục đích chính là minh họa thuật toán sắp xếp đơn giản hoặc sắp xếp mảng nhỏ.

Câu 25: Cho mảng [3, 1, 4, 1, 5, 9, 2, 6]. Sử dụng thuật toán sắp xếp đếm (Counting Sort) để sắp xếp mảng này, bạn cần thêm bộ nhớ phụ để đếm các phần tử. Kích thước của bộ nhớ phụ này phụ thuộc vào yếu tố nào?

  • A. Số lượng phần tử trong mảng cần sắp xếp.
  • B. Phạm vi giá trị của các phần tử trong mảng.
  • C. Độ dài của mảng sau khi sắp xếp.
  • D. Không cần bộ nhớ phụ trong thuật toán sắp xếp đếm.

Câu 26: Trong thuật toán sắp xếp chọn, sau khi tìm thấy phần tử nhỏ nhất trong phần chưa sắp xếp, thao tác tiếp theo là gì?

  • A. Chèn phần tử nhỏ nhất vào vị trí đầu tiên của mảng.
  • B. Loại bỏ phần tử nhỏ nhất khỏi mảng.
  • C. Hoán đổi phần tử nhỏ nhất với phần tử đầu tiên của phần chưa sắp xếp.
  • D. So sánh phần tử nhỏ nhất với phần tử lớn nhất và hoán đổi nếu cần.

Câu 27: Để sắp xếp một mảng số nguyên dương có giá trị từ 1 đến 100, thuật toán sắp xếp nào sau đây có khả năng chạy nhanh nhất trong thực 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. Sắp xếp đếm (Counting Sort)

Câu 28: Nếu bạn có một thuật toán sắp xếp ổn định, điều đó có nghĩa là gì khi sắp xếp một mảng chứa các bản ghi có khóa trùng nhau?

  • A. Các bản ghi có khóa trùng nhau sẽ được loại bỏ khỏi mảng.
  • B. Thứ tự tương đối của các bản ghi có khóa trùng nhau trong mảng đầu vào được giữ nguyên trong mảng đầu ra.
  • C. Các bản ghi có khóa trùng nhau sẽ được sắp xếp theo thứ tự ngược lại.
  • D. Tính ổn định không ảnh hưởng đến các bản ghi có khóa trùng nhau.

Câu 29: Trong thuật toán sắp xếp nổi bọt, số lần so sánh trong trường hợp xấu nhất là bao nhiêu đối với mảng có n phần tử?

  • A. O(n^2)
  • B. O(n)
  • C. O(n log n)
  • D. O(log n)

Câu 30: Giả sử bạn đang viết một chương trình để sắp xếp danh sách các sản phẩm theo giá. Tiêu chí quan trọng nhất để chọn thuật toán sắp xếp trong trường hợp này là gì?

  • A. Tính ổn định của thuật toán.
  • B. Độ phức tạp thời gian của thuật toán.
  • C. Tính đơn giản và dễ cài đặt của thuật toán.
  • D. Yêu cầu bộ nhớ phụ của thuật toán.

1 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 1: Trong các thuật toán sắp xếp đơn giản, thuật toán nào có độ phức tạp thời gian trung bình và trường hợp xấu nhất đều là O(n^2), nhưng lại hiệu quả nhất trên các mảng đã gần như đượ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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 2: Xét đoạn mã giả sau về thuật toán sắp xếp:
```
for i from 1 to n-1:
min_index = i
for j from i+1 to n:
if array[j] < array[min_index]: min_index = j swap array[i] and array[min_index] ``` Đoạn mã này mô tả thuật toán sắp xếp nào?

3 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 3: Thuật toán sắp xếp nổi bọt (Bubble Sort) hoạt động bằng cách lặp đi lặp lại việc so sánh các cặp phần tử liền kề và hoán đổi chúng nếu chúng không đúng thứ tự. Điều gì sẽ xảy ra sau khi vòng lặp ngoài cùng đầu tiên của thuật toán nổi bọt hoàn thành?

4 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 4: Trong thuật toán sắp xếp chèn (Insertion Sort), khi nào thì số phép so sánh là ít nhất?

5 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 5: Thuật toán sắp xếp nào sau đây là một thuật toán sắp xếp tại chỗ (in-place), nghĩa là nó không yêu cầu thêm không gian bộ nhớ đáng kể ngoài mảng ban đầu?

6 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 6: Giả sử bạn có một mảng gồm 1000 phần tử đã được sắp xếp gần như hoàn chỉnh, chỉ có một vài phần tử bị đặt sai vị trí một chút. Thuật toán sắp xếp đơn giản nào sẽ hiệu quả nhất để sắp xếp hoàn chỉnh mảng này?

7 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 7: Trong thuật toán sắp xếp chọn (Selection Sort), số lần hoán đổi phần tử trong trường hợp xấu nhất là bao nhiêu?

8 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 8: Thuật toán sắp xếp đếm (Counting Sort) phù hợp nhất để sắp xếp loại 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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 9: Phát biểu nào sau đây là đúng về tính ổn định của thuật toán sắp xếp?

10 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 10: Cho mảng [5, 2, 8, 1, 9, 4, 7]. Sau bước đầu tiên của thuật toán sắp xếp chọn (Selection Sort), mảng sẽ trở thành:

11 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 11: Xét thuật toán sắp xếp chèn. Trong quá trình sắp xếp mảng [7, 5, 3, 1], sau khi chèn phần tử 5 vào vị trí đúng, mảng sẽ có dạng như thế nào?

12 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 12: Để sắp xếp một danh sách tên học sinh theo thứ tự bảng chữ cái, thuật toán sắp xếp nào sau đây là phù hợp nhất nếu bạn muốn ưu tiên tính đơn giản và dễ cài đặt?

13 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 13: Trong thuật toán sắp xếp nổi bọt cải tiến (Bubble Sort with optimization), điều kiện dừng sớm là gì?

14 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 14: So sánh thuật toán sắp xếp chọn và sắp xếp chèn về số lượng phép so sánh trong trường hợp xấu nhất. Phát biểu nào sau đây là đúng?

15 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 15: Cho dãy số [10, 9, 8, 7, 6, 5]. Nếu sử dụng thuật toán sắp xếp nổi bọt, sau vòng lặp đầu tiên, dãy số sẽ trở thành:

16 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 16: Trong trường hợp nào thì thuật toán sắp xếp chèn (Insertion Sort) có độ phức tạp thời gian là O(n)?

17 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 17: Ưu điểm chính của thuật toán sắp xếp chọn (Selection Sort) so với các thuật toán sắp xếp đơn giản khác là gì?

18 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 18: Nhược điểm lớn nhất của thuật toán sắp xếp nổi bọt (Bubble Sort) là gì?

19 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 19: Trong các thuật toán sắp xếp đơn giản đã học (chèn, chọn, nổi bọt), thuật toán nào thực hiện nhiều phép hoán đổi nhất trong trường hợp mảng được sắp xếp ngược?

20 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 20: Để sắp xếp điểm thi của 100 học sinh, trong đó điểm số là số nguyên từ 0 đến 10, thuật toán nào sau đây có thể đạt độ phức tạp thời gian O(n+k) với k là phạm vi điểm (trong trường hợp này k=10)?

21 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 21: Giả sử bạn cần sắp xếp một mảng các đối tượng phức tạp, việc so sánh hai đối tượng mất nhiều thời gian. Thuật toán sắp xếp đơn giản nào có xu hướng thực hiện ít phép so sánh nhất?

22 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 22: Trong thuật toán sắp xếp chèn, phần 'đã sắp xếp' của mảng ban đầu nằm ở vị trí nào?

23 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 23: Thuật toán sắp xếp nào sau đây có thể được tối ưu hóa để có độ phức tạp thời gian tốt nhất là O(n) khi mảng đã đượ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 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 24: Khi nào nên sử dụng thuật toán sắp xếp nổi bọt (Bubble Sort) mặc dù nó không phải là thuật toán hiệu quả nhất?

25 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 25: Cho mảng [3, 1, 4, 1, 5, 9, 2, 6]. Sử dụng thuật toán sắp xếp đếm (Counting Sort) để sắp xếp mảng này, bạn cần thêm bộ nhớ phụ để đếm các phần tử. Kích thước của bộ nhớ phụ này phụ thuộc vào yếu tố nào?

26 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 26: Trong thuật toán sắp xếp chọn, sau khi tìm thấy phần tử nhỏ nhất trong phần chưa sắp xếp, thao tác tiếp theo là gì?

27 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 27: Để sắp xếp một mảng số nguyên dương có giá trị từ 1 đến 100, thuật toán sắp xếp nào sau đây có khả năng chạy nhanh nhất trong thực tế?

28 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 28: Nếu bạn có một thuật toán sắp xếp ổn định, điều đó có nghĩa là gì khi sắp xếp một mảng chứa các bản ghi có khóa trùng nhau?

29 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 29: Trong thuật toán sắp xếp nổi bọt, số lần so sánh trong trường hợp xấu nhất là bao nhiêu đối với mảng có n phần tử?

30 / 30

Category: Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản

Tags: Bộ đề 10

Câu 30: Giả sử bạn đang viết một chương trình để sắp xếp danh sách các sản phẩm theo giá. Tiêu chí quan trọng nhất để chọn thuật toán sắp xếp trong trường hợp này là gì?

Xem kết quả