wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Untitled Quiz

Total questions: 90

Worksheet time: 45mins

Name
Class
Date
1.

Cấu trúc dữ liệu là gì?

a)

Cấu trúc dữ liệu là cách tổ chức, lưu trữ và quản lý dữ liệu trong bộ nhớ máy tính nhằm tối ưu việc truy xuất, cập nhật và xử lý dữ liệu.

b)

Cấu trúc dữ liệu là các thiết bị phần cứng dùng để lưu trữ dữ liệu trong máy tính.

c)

Cấu trúc dữ liệu là ngôn ngữ lập trình dùng để viết chương trình máy tính.

d)

Cấu trúc dữ liệu là tập hợp các câu lệnh điều khiển luồng chương trình.

2.

Thuật toán là gì?

a)

Là một tập hợp hữu hạn các bước rõ ràng, xác định và có thứ tự, dùng để giải quyết một bài toán hoặc thực hiện một nhiệm vụ cụ thể, biến dữ liệu đầu vào thành kết quả đầu ra.

b)

Là một chương trình máy tính được viết bằng ngôn ngữ lập trình.

c)

Là thiết bị phần cứng dùng để xử lý dữ liệu.

d)

Là cách tổ chức dữ liệu trong bộ nhớ máy tính.

3.

Tại sao thuật toán cần phải hữu hạn?

a)

Vì thuật toán cần đảm bảo quá trình thực hiện sẽ kết thúc, cho ra kết quả xác định, có thể triển khai trên máy tính và tránh vòng lặp vô hạn gây treo chương trình.

b)

Vì thuật toán phải chạy càng lâu càng tốt để xử lý nhiều dữ liệu.

c)

Vì máy tính chỉ xử lý được số lượng bước vô hạn.

d)

Vì thuật toán không cần kết quả đầu ra.

4.

Mô tả các hoạt động và ứng dụng của thuật toán tìm kiếm tuần tự là gì?

a)

So sánh giá trị cần tìm với từng phần tử từ đầu đến cuối danh sách; nếu tìm thấy thì kết thúc. Thuật toán thường dùng cho mảng chưa sắp xếp, dữ liệu nhỏ và các bài toán đơn giản.

b)

Chia mảng thành hai phần bằng nhau rồi tìm kiếm dệ quy trong mỗi phần.

c)

Sắp xếp dữ liệu trước khi tìm kiếm để tăng tốc độ xử lý.

d)

Chỉ áp dụng cho các mảng đã được sắp xếp tăng dần.

5.

Khi không tìm thấy phần tử cần tìm, thuật toán tìm kiếm tuyến tính trả về kết quả gì?

a)

Trả về một giá trị đặc biệt (thường là 1-1 ) để biểu thị rằng phần tử không tồn tại trong tập dữ liệu, giúp phân biệt với các chỉ số hợp lệ.

b)

Trả về phần tử cuối cùng của mảng.

c)

Trả về giá trị 00 .

d)

Tự động thêm phần tử cần tìm vào mảng.

6.

Các trường hợp tốt nhất, xấu nhất và trung bình trong lý thuyết độ phức tạp thuật toán là gì?

a)

Trường hợp tốt nhất: thuật toán chạy nhanh nhất, ít bước nhất. Trường hợp xấu nhất: thuật toán chạy lâu nhất, nhiều bước nhất. Trường hợp trung bình: thời gian chạy kỳ vọng trung bình của thuật toán.

b)

Tốt nhất: dữ liệu lớn nhất. Xấu nhất: dữ liệu nhỏ nhất. Trung bình: dữ liệu ngẫu nhiên.

c)

Tốt nhất: luôn chạy trong thời gian hằng số. Xấu nhất: không bao giờ kết thúc. Trung bình: không xác định.

d)

Chỉ tồn tại trường hợp xấu nhất; không có trường hợp tốt nhất và trung bình.

7.

Thuật toán được coi là một phương pháp giải quyết vấn đề vì lý do nào sau đây?

a)

Vì thuật toán cung cấp một quy trình rõ ràng, có hệ thống và hữu hạn để biến dữ liệu đầu vào thành kết quả mong muốn.

b)

Vì thuật toán luôn chạy nhanh nhất.

c)

Vì thuật toán không cần dữ liệu đầu vào.

d)

Vì thuật toán chỉ dùng cho máy tính mạnh.

8.

Đặc điểm nào sau đây thể hiện rõ khả năng giải quyết vấn đề của thuật toán?

a)

Có tính xác định, tuần tự, đảm bảo kết thúc và có thể áp dụng cho nhiều trường hợp.

b)

Không cần kết thúc.

c)

Phụ thuộc vào máy tính.

d)

Chỉ áp dụng cho một trường hợp duy nhất.

9.

Mối quan hệ giữa độ phức tạp thời gian và độ phức tạp không gian của thuật toán là gì?

a)

Thường tồn tại sự đánh đổi giữa thời gian chạy và lượng bộ nhớ sử dụng.

b)

Luôn giống nhau.

c)

Không liên quan gì đến nhau.

d)

Chỉ xét một trong hai.

10.

Ví dụ nào sau đây thể hiện rõ việc đánh đổi không gian để cải thiện thời gian?

a)

Sử dụng bảng băm (Hash Table) để đạt thời gian tìm kiếm trung bình O(1)O(1) nhưng tốn bộ nhớ O(n)O(n) .

b)

Tìm kiếm tuyến tính trong mảng.

c)

Bubble Sort.

d)

Insertion Sort.

11.

Vì sao tính đúng đắn và chính xác là yếu tố quan trọng nhất của thuật toán?

a)

Vì thuật toán cho kết quả sai thì dù nhanh hay tối ưu đến đâu cũng vô nghĩa.

b)

Vì giúp code ngắn hơn.

c)

Vì giúp tiết kiệm bộ nhớ.

d)

Vì dễ lập trình hơn.

12.

Thứ tự ưu tiên đúng trong thiết kế và đánh giá thuật toán là gì?

a)

Đúng → Chính xác → Hiệu quả → Tối ưu

b)

Tối ưu → Đúng → Hiệu quả

c)

Nhanh → Ít bộ nhớ → Đúng

d)

Hiệu quả → Tối ưu → Đúng

13.

Nhược điểm chính của việc biểu diễn thuật toán bằng ngôn ngữ tự nhiên là gì?

a)

Dễ mơ hồ, khó kiểm tra tính chính xác và không thể thực thi trực tiếp.

b)

Khó đọc.

c)

Phụ thuộc ngôn ngữ lập trình.

d)

Không mô tả được thuật toán.

14.

Cách biểu diễn thuật toán nào được sử dụng phổ biến nhất trong giảng dạy và học thuật?

a)

Giả mã (Pseudocode) vì rõ ràng, logic và dễ chuyển sang code

b)

Ngôn ngữ tự nhiên

c)

Lưu đồ

d)

Ngôn ngữ lập trình

15.

Vì sao không thể kết luận thuật toán B tốt hơn A chỉ dựa vào thời gian chạy 0,90{,}9 ms và 1,411{,}41 ms?

a)

Vì thời gian chạy phụ thuộc vào dữ liệu đầu vào, môi trường và độ phức tạp thuật toán.

b)

Vì mili giây không chính xác.

c)

Vì thuật toán A luôn tốt hơn.

d)

Vì thuật toán B chậm hơn.

16.

Độ phức tạp O(1)O(1) có ý nghĩa gì trong thực tế?

a)

Thời gian thực thi không phụ thuộc vào kích thước dữ liệu đầu vào.

b)

Chỉ áp dụng cho dữ liệu nhỏ.

c)

Luôn dùng nhiều bộ nhớ.

d)

Chỉ dùng cho sắp xếp.

17.

Thuật toán nào sau đây có độ phức tạp O(log2n)O(\log_2 n) ?

a)

Thuật toán tìm kiếm nhị phân

b)

Tìm kiếm tuyến tính

c)

Bubble Sort

d)

Insertion Sort

18.

Độ phức tạp O(n)O(n) được hiểu như thế nào?

a)

Thời gian thực thi tăng tuyến tính theo số phần tử đầu vào

b)

Thời gian tăng theo cấp số nhân

c)

Không phụ thuộc vào dữ liệu

d)

Giảm một nửa sau mỗi bước

19.

Đặc điểm nào đúng với thuật toán có độ phức tạp O(n2)O(n^2) ?

a)

Có hai vòng lặp lồng nhau, số bước xử lý xấp xỉ n×nn \times n

b)

Chỉ có một vòng lặp

c)

Luôn chạy nhanh

d)

Không phụ thuộc dữ liệu

20.

Vì sao thuật toán tìm kiếm nhị phân hiệu quả hơn tìm kiếm tuyến tính?

a)

Vì mỗi bước loại bỏ được một nửa dữ liệu cần tìm

b)

Vì không cần sắp xếp dữ liệu

c)

Vì dùng nhiều bộ nhớ

d)

Vì luôn tìm thấy kết quả

21.

Ưu điểm chính của quy hoạch động là gì?

a)

Lưu và tái sử dụng kết quả bài toán con để tránh tính toán lặp

b)

Không dùng bộ nhớ

c)

Không dùng đệ quy

d)

Không cần điều kiện dừng

22.

Nhược điểm lớn nhất của thuật toán vét cạn là gì?

a)

Độ phức tạp rất lớn, không phù hợp với dữ liệu lớn

b)

Khó cài đặt

c)

Không tìm được lời giải

d)

Không chính xác

23.

Điều kiện quan trọng nhất để thuật toán đệ quy hoạt động chính xác là gì?

a)

Có điều kiện dừng rõ ràng

b)

Có nhiều vòng lặp

c)

Không dùng bộ nhớ

d)

Không gọi lại chính nó

24.

Tối ưu hóa thuật toán nhằm mục tiêu nào sau đây?

a)

Giải cùng một bài toán nhưng hiệu quả hơn về thời gian và/hoặc bộ nhớ

b)

Làm thuật toán phức tạp hơn

c)

Làm code dài hơn

d)

Chỉ giảm bộ nhớ

25.

Vì sao Quick Sort thường hiệu quả hơn Bubble Sort trong thực tế?

a)

Vì Quick Sort có độ phức tạp trung bình O(nlogn)O(n\,\log n)

b)

Vì Bubble Sort không sắp xếp được

c)

Vì Quick Sort không dùng đệ quy

d)

Vì Bubble Sort luôn chậm

26.

Vì sao độ phức tạp của tìm kiếm tuyến tính là O(n)O(n) ?

a)

Vì trong trường hợp xấu nhất phải duyệt qua toàn bộ nn phần tử

b)

Vì luôn chia đôi dữ liệu

c)

Vì dùng đệ quy

d)

Vì cần sắp xếp trước

27.

Vì sao thuật toán Fibonacci đệ quy có độ phức tạp O(2n)O(2^n) ?

a)

Vì mỗi lời gọi sinh ra hai lời gọi con và nhiều giá trị bị tính lặp

b)

Vì không có điều kiện dừng

c)

Vì dùng mảng

d)

Vì không dùng bộ nhớ

28.

Chiến lược “chia để trị” được mô tả đúng nhất như thế nào?

a)

Chia bài toán thành các bài toán con, giải độc lập và kết hợp kết quả

b)

Giải trực tiếp bài toán lớn

c)

Thử tất cả các khả năng

d)

Không dùng đệ quy

29.

Trường hợp xấu nhất của tìm kiếm tuyến tính xảy ra khi nào?

a)

Khi phần tử không tồn tại hoặc nằm ở vị trí cuối cùng của mảng

b)

Khi phần tử ở đầu mảng

c)

Khi mảng đã sắp xếp

d)

Khi dữ liệu nhỏ

30.

Vì sao việc chọn pivot nhỏ nhất trong Quick Sort dẫn đến độ phức tạp cao nhất?

a)

Vì làm mảng con bị chia mất cân bằng, phá vỡ lợi thế chia để trị

b)

Vì làm thuật toán dừng sớm

c)

Vì giảm số phép so sánh

d)

Vì tăng bộ nhớ sử dụng

31.

Thuật toán sắp xếp trộn (Merge Sort) hoạt động như thế nào và vì sao gọi là “trộn”?

a)

Chia mảng thành các mảng con, sắp xếp rồi trộn các mảng con đã sắp xếp

b)

So sánh từng cặp phần tử liền kề

c)

Chọn phần tử nhỏ nhất đưa lên đầu

d)

Chèn phần tử vào vị trí thích hợp

32.

Thuật toán sắp xếp Shell hoạt động dựa trên nguyên lý nào và thuộc loại sắp xếp gì?

a)

Sắp xếp chèn với khoảng cách giảm dần, thuộc sắp xếp nội bộ

b)

Sắp xếp đổi chỗ trực tiếp

c)

Sắp xếp dựa trên heap

d)

Sắp xếp ngoài

33.

Phân vùng trong Quick Sort có vai trò gì?

a)

Chia mảng thành hai phần nhỏ hơn và lớn hơn pivot

b)

Gộp các mảng con

c)

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

d)

Xây dựng heap

34.

Kết quả cuối cùng của Heap Sort là gì?

a)

Mảng được sắp tăng hoặc giảm hoàn chỉnh

b)

Mảng chỉ sắp xếp một phần

c)

Mảng giữ nguyên thứ tự ban đầu

d)

Mảng đảo ngược

35.

Độ phức tạp trung bình của Selection Sort là gì?

a)

O(n2)O(n^2)

b)

O(nlogn)O(n\,\log n)

c)

O(n)O(n)

d)

O(logn)O(\log n)

36.

Nhược điểm chính của Selection Sort là gì?

a)

Thời gian chạy tốn với dữ liệu lớn

b)

Tốn nhiều bộ nhớ

c)

Khó cài đặt

d)

Không xác định kết quả

37.

Thuật toán sắp xếp ngoài là gì?

a)

Sắp xếp dữ liệu không đủ chứa trong bộ nhớ chính

b)

Sắp xếp dữ liệu trong RAM

c)

Sắp xếp mảng nhỏ

d)

Sắp xếp tại chỗ

38.

Khi nào nên dùng sắp xếp ngoài?

a)

Khi dữ liệu rất lớn vượt quá bộ nhớ

b)

Khi dữ liệu nhỏ

c)

Khi mảng đã sắp xếp

d)

Khi cần tốc độ cao

39.

Heap Sort dựa trên cấu trúc dữ liệu nào?

a)

Heap

b)

Stack

c)

Queue

d)

List

40.

Trong Heap Sort, phần tử lớn nhất nằm ở đâu?

a)

Ở gốc heap

b)

Ở lá trái

c)

Ở lá phải

d)

Ở giữa mảng

41.

Vì sao tìm kiếm tuyến tính không luôn nhanh hơn tìm kiếm nhị phân?

a)

Vì phải duyệt từng phần tử

b)

Vì cần mảng sắp xếp

c)

Vì dùng đệ quy

d)

Vì dùng nhiều bộ nhớ

42.

Yếu tố giúp tìm kiếm nhị phân nhanh hơn là gì?

a)

Giảm không gian tìm kiếm sau mỗi bước

b)

Duyệt tuần tự

c)

So sánh tất cả phần tử

d)

Không cần sắp xếp

43.

Nhược điểm của tìm kiếm tuyến tính với dữ liệu lớn là gì?

a)

Thời gian chạy tăng tuyến tính

b)

Không tìm được kết quả

c)

Tốn nhiều bộ nhớ

d)

Khó cài đặt

44.

Khi nào nên dùng tìm kiếm tuyến tính đệ quy?

a)

Khi cần minh họa đệ quy, dữ liệu nhỏ

b)

Khi dữ liệu lớn

c)

Khi cần tốc độ cao

d)

Khi mảng đã sắp xếp

45.

Trong dãy 1,2,3,6,8,10, số 6 được tìm ở lần gọi thứ mấy (đệ quy)?

a)

Lần gọi thứ 4

b)

Lần gọi thứ 2

c)

Lần gọi thứ 6

d)

Lần gọi thứ 1

46.

Khi nào tìm kiếm tuyến tính đệ quy kết luận 17 không tồn tại?

a)

Sau lần gọi cuối cùng

b)

Sau lần gọi đầu

c)

Ngay khi so sánh lần 2

d)

Không bao giờ

47.

Trường hợp tốt nhất của tìm kiếm tuyến tính đệ quy là gì?

a)

O(1)O(1)

b)

O(n)O(n)

c)

O(logn)O(\log n)

d)

O(n2)O(n^2)

48.

Với danh sách không sắp xếp, thuật toán nào áp dụng được?

a)

Tìm kiếm tuyến tính

b)

Tìm kiếm nhị phân

49.

Ưu điểm của đệ quy so với lặp là gì?

a)

Code ngắn gọn, dễ hiểu

b)

Chạy nhanh hơn

c)

Ít dùng bộ nhớ

d)

Không cần điều kiện dừng

50.

Vì sao tìm kiếm tuyến tính kém hiệu quả với dữ liệu lớn?

a)

Phải kiểm tra từng phần tử

b)

Cần sắp xếp mảng

c)

Dùng đệ quy

d)

Dùng nhiều biến

51.

Khi nào tìm kiếm tuyến tính là lựa chọn phù hợp?

a)

Dữ liệu nhỏ, chưa sắp xếp

b)

Dữ liệu rất lớn

c)

Yêu cầu tốc độ cao

d)

Mảng đã sắp xếp

52.

Sau khi xác định phạm vi, tìm kiếm nhảy hoạt động thế nào?

a)

Tìm tuyến tính trong phạm vi đó

b)

Tìm nhị phân

c)

Tìm toàn bộ mảng

d)

Sắp xếp lại mảng

53.

Tìm kiếm nội suy nhanh khi nào?

a)

Khi dữ liệu phân bố đều

b)

Khi dữ liệu ngẫu nhiên

c)

Khi mảng nhỏ

d)

Khi không sắp xếp

54.

Vì sao best case của tìm kiếm tuyến tính là O(1)O(1) ?

a)

Phần tử nằm ở vị trí đầu

b)

Phần tử ở cuối

c)

Phần tử không tồn tại

d)

Mảng rộng

55.

Worst case của tìm kiếm tuyến tính là gì?

a)

O(n)O(n)

b)

O(1)O(1)

c)

O(logn)O(\log n)

d)

O(n2)O(n^2)

56.

Tìm kiếm tuyến tính đệ quy chậm hơn dạng lặp vì sao?

a)

Tốn chi phí gọi hàm

b)

Duyệt ít phần tử

c)

Không có điều kiện dừng

d)

Phải sắp xếp mảng

57.

Về bộ nhớ, tìm kiếm tuyến tính đệ quy thế nào so với lặp?

a)

Tốn nhiều bộ nhớ hơn

b)

Ít bộ nhớ hơn

c)

Bằng nhau

d)

Không dùng bộ nhớ

58.

Worst case của tìm kiếm tuyến tính đệ quy là gì?

a)

O(n)O(n)

b)

O(1)O(1)

c)

O(logn)O(\log n)

d)

O(n2)O(n^2)

59.

Thuật toán sắp xếp nào hiệu quả với mảng nhỏ?

a)

Insertion Sort

b)

Merge Sort

c)

Heap Sort

d)

Quick Sort

60.

Merge Sort hoạt động theo nguyên lý nào?

a)

Chia để trị

b)

Tham lam

c)

Quy hoạch động

d)

Vét cạn

61.

Merge Sort bottom-up khác Heap Sort ở điểm nào?

a)

Không dùng đệ quy

b)

Tốn nhiều bộ nhớ hơn

c)

Chậm hơn

d)

Không ổn định

62.

Vì sao Quick Sort thường nhanh?

a)

Phân vùng hiệu quả

b)

Không cần so sánh

c)

Không dùng đệ quy

d)

Luôn O(n)O(n)

63.

Ưu điểm chính của Selection Sort là gì?

a)

Ít hoán đổi

b)

Chạy rất nhanh

c)

Ổn định

d)

O(nlogn)O(n \log n)

64.

Số lần lặp của Insertion Sort với NN phần tử là bao nhiêu?

a)

Phụ thuộc thứ tự dữ liệu

b)

Luôn bằng NN

c)

Luôn bằng N2N^2

d)

Không xác định

65.

Bubble Sort giống Insertion Sort ở điểm nào?

a)

So sánh và hoán đổi cục bộ

b)

Dùng heap

c)

Chia để trị

d)

Không so sánh

66.

Trong C, vòng lặp thường dùng cho Insertion Sort là gì?

a)

for và while

b)

do while

c)

switch

d)

goto

67.

Vì sao Insertion Sort hiệu quả với mảng đã sắp xếp?

a)

Ít phép so sánh và dịch chuyển

b)

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

c)

Không cần bộ nhớ

d)

Không cần điều kiện

68.

Best và worst case của Insertion Sort là gì?

a)

O(n)O(n)O(n2)O(n^2)

b)

O(logn)O(\log n)O(n)O(n)

c)

O(n2)O(n^2)O(n2)O(n^2)

d)

O(1)O(1)O(n)O(n)

69.

Trường hợp xấu nhất của Insertion Sort là khi nào?

a)

Mảng đảo ngược

b)

Mảng đã sắp xếp

c)

Mảng rỗng

d)

Mảng 1 phần tử

70.

Với mảng đã sắp xếp, thuật toán nào hiệu quả nhất?

a)

Insertion Sort

b)

Bubble Sort thường

c)

Selection Sort

d)

Heap Sort

71.

Bubble Sort worst case có độ phức tạp gì?

a)

O(n2)O(n^2)

b)

O(n)O(n)

c)

O(logn)O(\log n)

d)

O(1)O(1)

72.

Bubble Sort tối ưu hóa mạnh khi nào?

a)

Mảng đã sắp xếp

b)

Mảng đảo ngược

c)

Mảng ngẫu nhiên

d)

Mảng lớn

73.

Thời gian chạy của Heap Sort là gì?

a)

O(nlogn)O(n \log n)

b)

O(n2)O(n^2)

c)

O(n)O(n)

d)

O(logn)O(\log n)

74.

Khi xóa trong heap cần bao nhiêu mảng?

a)

Một mảng

b)

Hai mảng

c)

Ba mảng

d)

Không cần mảng

75.

Heap Sort dựa trên hàng đợi ưu tiên như thế nào?

a)

Luôn lấy phần tử ưu tiên cao nhất

b)

Lấy ngẫu nhiên

c)

Lấy phần tử đầu

d)

Lấy phần tử cuối

76.

Heap Sort so với các thuật toán khác thế nào?

a)

Không ổn định, O(nlogn)O(n \log n)

b)

Ổn định, O(n2)O(n^2)

c)

Rất nhanh với mảng nhỏ

d)

O(n)O(n)

77.

Heap Sort có phải in-place không?

a)

b)

Không

c)

Luôn cần mảng phụ

d)

Không xác định

78.

Ưu điểm lớn của Selection Sort là gì?

a)

Ít hoán đổi

b)

Rất nhanh

c)

Ổn định

d)

O(nlogn)O(n \log n)

79.

Thuật toán sắp xếp C++ sử dụng là gì?

a)

Introsort

b)

Bubble Sort

c)

Selection Sort

d)

Heap Sort

80.

In-place sorting là gì?

a)

Không dùng bộ nhớ phụ đáng kể

b)

Luôn dùng mảng phụ

c)

Chỉ dùng đệ quy

d)

Chỉ dùng heap

81.

Khi nào nên dùng Selection Sort?

a)

Dữ liệu nhỏ, cần ít hoán đổi

b)

Dữ liệu lớn

c)

Cần tốc độ cao

d)

Mảng đã sắp xếp

82.

Với arr={5,6,7,4,3}, thuật toán nào ít hoán đổi hơn?

a)

Selection Sort

b)

Bubble Sort

c)

Merge Sort

d)

Quick Sort

83.

Với arr={2,3,4,5,6}, Bubble Sort tối ưu cần bao nhiêu vòng?

a)

1

b)

2

c)

5

d)

6

84.

Số đảo ngược trung bình trong mảng N phần tử là gì?

a)

N(N−1)/4

b)

N2N^2

c)

N

d)

log N

85.

Số lần dịch chuyển trong Insertion Sort phụ thuộc vào gì?

a)

Thứ tự ban đầu của mảng

b)

Giá trị phần tử

c)

Kiểu dữ liệu

d)

Kích thước bộ nhớ

86.

Sau lần chèn thứ hai, mảng thay đổi thế nào phụ thuộc vào đâu?

a)

Hai phần tử đầu

b)

Phần tử cuối

c)

Heap

d)

Pivot

87.

Các bước Insertion Sort thực hiện là gì?

a)

Lấy phần tử chèn vào đoạn đã sắp xếp

b)

Chia mảng

c)

Phân vùng

d)

Trộn mảng

88.

Số so sánh trung bình khi chèn phần tử thứ 7 là gì?

a)

Khoảng n/2

b)

n

c)

log n

d)

1

89.

Với arr={3,4,6,5}, Bubble Sort cần bao nhiêu vòng?

a)

2

b)

1

c)

3

d)

4

90.

Sau build heap, mảng có đặc điểm gì?

a)

Thỏa mãn tính chất heap

b)

Đã sắp xếp hoàn toàn

c)

Đảo ngược

d)

Không thay đổi