wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Thuật toán sắp xếp cơ bản: Bubble/Selection/Insertion/Merge

Total questions: 60

Worksheet time: 30mins

Name
Class
Date
1.

Bubble Sort có độ phức tạp thời gian trung bình là:

a)

O(n)O(n)

b)

O(nlogn)O(n \log n)

c)

O(n2)O(n^2)

d)

O(logn)O(\log n)

2.

Bubble Sort là thuật toán dựa trên:

a)

Chia để trị

b)

So sánh các cặp phần tử kề nhau

c)

Chọn phần tử nhỏ nhất

d)

Chèn phần tử

3.

Khi mảng đã được sắp xếp sẵn, Bubble Sort tối ưu (có flag) chạy trong:

a)

O(n)O(n)

b)

O(n2)O(n^2)

c)

O(logn)O(\log n)

d)

O(1)O(1)

4.

Bubble Sort có phải thuật toán ổn định (stable)?

a)

b)

Không

5.

Bubble Sort thích hợp cho:

a)

Mảng lớn

b)

Mảng nhỏ và gần như đã sắp xếp

c)

Mảng ngẫu nhiên lớn

d)

Chuỗi ký tự dài

6.

Số lần hoán đổi trong Bubble Sort phụ thuộc vào:

a)

Số lần duyệt

b)

Số cặp phần tử ngược thứ tự

c)

Kích thước mảng

d)

Không phụ thuộc gì

7.

Độ phức tạp space của Bubble Sort là:

a)

O(n)O(n)

b)

O(logn)O(\log n)

c)

O(1)O(1)

d)

O(n2)O(n^2)

8.

Khi sử dụng cờ kiểm tra (flag), mục đích là:

a)

Tăng hoán đổi

b)

Dừng sớm nếu mảng đã sorted

c)

Đếm số phần tử

d)

Tăng tốc O(nlogn)O(n \log n)

9.

Selection Sort hoạt động dựa trên:

a)

Đổi chỗ phần tử liền kề

b)

Tìm phần tử nhỏ nhất rồi đưa về đầu

c)

Chia để trị

d)

Chèn đúng vị trí

10.

Số lần hoán đổi (swap) tối đa của Selection Sort:

a)

O(n2)O(n^2)

b)

n − 1

c)

O(n)O(n)

d)

O(logn)O(\log n)

11.

Selection Sort là thuật toán:

a)

Ổn định

b)

Không ổn định

12.

Độ phức tạp thời gian best case của Selection Sort:

a)

O(n)O(n)

b)

O(nlogn)O(n \log n)

c)

O(n2)O(n^2)

d)

O(logn)O(\log n)

13.

Selection Sort tối ưu khi:

a)

Mảng lớn

b)

Mảng nhỏ

c)

Mảng gần sorted

d)

Không có trường hợp tối ưu

14.

Điểm mạnh của Selection Sort là:

a)

Ít hoán đổi

b)

Ít so sánh

c)

Rất nhanh

d)

Chạy O(n)O(n)

15.

Nếu cần giảm số lượng swap tối đa thì chọn:

a)

Bubble Sort

b)

Insertion Sort

c)

Selection Sort

d)

Quick Sort

16.

Insertion Sort có time complexity tốt nhất là:

a)

O(n)O(n)

b)

O(logn)O(\log n)

c)

O(n2)O(n^2)

d)

O(1)O(1)

17.

Insertion Sort là thuật toán:

a)

Ổn định

b)

Không ổn định

18.

Insertion Sort hiệu quả nhất khi:

a)

Mảng lớn

b)

Mảng gần như đã sắp xếp

c)

Mảng đảo ngược

d)

Chuỗi ký tự lớn

19.

Độ phức tạp worst-case của Insertion Sort:

a)

O(n2)O(n^2)

b)

O(nlogn)O(n \log n)

c)

O(logn)O(\log n)

d)

O(n)O(n)

20.

Kịch bản nào sau đây khiến Insertion Sort chạy nhanh nhất?

a)

Mảng đã có thứ tự tăng

b)

Mảng ngẫu nhiên

c)

Mảng đảo ngược

d)

Mảng xen kẽ

21.

Nếu cần thuật toán nhanh cho dữ liệu online (nhập từng phần), chọn:

a)

Merge Sort

b)

Insertion Sort

c)

Selection Sort

d)

Heap Sort

22.

Insertion Sort sử dụng:

a)

So sánh phần tử kề

b)

Tìm min

c)

Chèn vào vị trí đúng

d)

Phân hoạch

23.

Insertion Sort có số phép hoán đổi phụ thuộc vào:

a)

Số phần tử sai vị trí

b)

Độ dài mảng

c)

Không phụ thuộc

d)

Số vòng lặp ngoài

24.

Merge Sort chia mảng thành:

a)

3 phần

b)

2 phần

c)

4 phần

d)

Tuỳ ý

25.

Merge Sort là thuật toán:

a)

In-place

b)

Không in-place

26.

Độ phức tạp thời gian mọi trường hợp của Merge Sort:

a)

O(n2)O(n^2)

b)

O(nlogn)O(n \log n)

c)

O(n)O(n)

d)

O(logn)O(\log n)

27.

Merge Sort có phải ổn định?

a)

b)

Không

28.

Merge Sort cần bộ nhớ phụ là:

a)

O(1)O(1)

b)

O(logn)O(\log n)

c)

O(n)O(n)

d)

O(n2)O(n^2)

29.

Merge Sort phù hợp cho:

a)

Mảng lớn

b)

Mảng nhỏ

c)

Dữ liệu stream online

d)

Mảng ngẫu nhiên nhỏ

30.

Merge Sort không phù hợp vì:

a)

Tốn bộ nhớ

b)

Quá chậm

c)

Không ổn định

d)

Không chia đôi mảng

31.

Merge Sort được dùng trong:

a)

Quicksort

b)

Tối ưu pipelines

c)

External sorting

d)

Linked List sorting

32.

Quick Sort thuộc nhóm:

a)

Chèn

b)

Chọn

c)

Chia để trị

d)

Đổi chỗ liền kề

33.

Bộ phận quan trọng nhất của Quick Sort:

a)

Merge

b)

Partition

c)

Binary Search

d)

Rebuild

34.

Worst-case của Quick Sort xảy ra khi:

a)

Pivot luôn ở giữa

b)

Pivot nhỏ nhất hoặc lớn nhất

c)

Mảng ngẫu nhiên

d)

Mảng đã sắp xếp

35.

Độ phức tạp trung bình của Quick Sort:

a)

O(n)O(n)

b)

O(nlogn)O(n \log n)

c)

O(n2)O(n^2)

d)

O(logn)O(\log n)

36.

Quick Sort có phải ổn định?

a)

b)

Không

37.

Quick Sort có ưu điểm:

a)

Không dùng đệ quy

b)

Không dùng swap

c)

In-place, nhanh trung bình

d)

Không dùng partition

38.

Quick Sort không phù hợp cho:

a)

Mảng lớn

b)

Array ngẫu nhiên

c)

Linked List

d)

Dùng nhiều RAM

39.

Lựa chọn pivot tốt nhất:

a)

Phần tử đầu

b)

Phần tử cuối

c)

Middle-of-three

d)

Ngẫu nhiên

40.

Quick Sort cần bộ nhớ phụ:

a)

O(n)O(n)

b)

O(logn)O(\log n)

c)

O(1)O(1)

d)

O(n2)O(n^2)

41.

Trong Hoare partition, chỉ số trả về là:

a)

Vị trí pivot cuối

b)

Chỉ số phân ngăn

c)

Chỉ số mid

d)

Chỉ số swapped

42.

Thuật toán nào là stable?

a)

Quick Sort

b)

Heap Sort

c)

Selection Sort

d)

Insertion Sort

43.

Thuật toán nào luôn O(nlogn)O(n \log n) trong mọi trường hợp?

a)

Quick Sort

b)

Merge Sort

c)

Bubble Sort

d)

Insertion Sort

44.

Thuật toán nào cần thêm mảng phụ?

a)

Merge Sort

b)

Quick Sort

c)

Heap Sort

d)

Selection Sort

45.

Thuật toán nào đúng best choice cho mảng gần sorted?

a)

Insertion Sort

b)

Merge Sort

c)

Heap Sort

d)

Quick Sort

46.

Thuật toán tốt nhất về số lần hoán đổi?

a)

Bubble Sort

b)

Selection Sort

c)

Insertion Sort

d)

Quick Sort

47.

Thuật toán nào dễ bị worst-case nếu không chọn pivot tốt?

a)

Merge Sort

b)

Quick Sort

c)

Heap Sort

d)

Selection Sort

48.

Thuật toán nào sắp xếp tốt cho linked list?

a)

Merge Sort

b)

Quick Sort

c)

Heap Sort

d)

Bubble Sort

49.

Thuật toán nào mang tính "chọn phần tử tốt nhất rồi fix vị trí"?

a)

Bubble Sort

b)

Quick Sort

c)

Selection Sort

d)

Merge Sort

50.

Thuật toán nào dùng kỹ thuật phân hoạch?

a)

Insertion Sort

b)

Selection Sort

c)

Quick Sort

d)

Merge Sort

51.

Interchange Sort có độ phức tạp thời gian trung bình là:

a)

O(n)O(n)

b)

O(nlogn)O(n \log n)

c)

O(n2)O(n^2)

d)

O(logn)O(\log n)

52.

Interchange Sort hoạt động dựa trên:

a)

So sánh và đổi chỗ tất cả các cặp phần tử

b)

Chèn vào vị trí đúng

c)

Tìm phần tử nhỏ nhất

d)

Chia để trị

53.

Interchange Sort có phải thuật toán ổn định?

a)

b)

Không

54.

Interchange Sort khác Selection Sort ở điểm nào?

a)

Không dùng swap

b)

Swap nhiều lần thay vì swap một lần

c)

Không dùng vòng lặp

d)

Dùng mảng phụ

55.

Worst-case của Interchange Sort là:

a)

O(n)O(n)

b)

O(nlogn)O(n \log n)

c)

O(n2)O(n^2)

d)

O(1)O(1)

56.

Interchange Sort thích hợp cho:

a)

Mảng lớn

b)

Mảng nhỏ

c)

Mảng ngẫu nhiên rất lớn

d)

Chuỗi ký tự dài

57.

Interchange Sort có phải là in-place algorithm không?

a)

b)

Không

58.

Interchange Sort hoán đổi phần tử khi:

a)

a[i]<a[j]a[i] < a[j]

b)

a[i]==a[j]a[i] == a[j]

c)

a[i]>a[j]a[i] > a[j]

d)

Không bao giờ hoán đổi

59.

Số lần so sánh của Interchange Sort là:

a)

nlognn \log n

b)

nn

c)

n2n^2

d)

logn\log n

60.

Interchange Sort gần giống thuật toán nào nhất?

a)

Insertion Sort

b)

Bubble Sort

c)

Selection Sort

d)

Merge Sort