wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Câu hỏi về thuật toán sắp xếp

Total questions: 80

Worksheet time: 40mins

Name
Class
Date
1.

Khi sử dụng thuật toán sắp xếp chèn, dãy con bên trải của phần tử đang xét có tính chất gì?

a)

Đã được sắp xếp

b)

Chưa được sắp xếp

c)

Tăng dần và giảm dần xen kẽ

d)

Ngẫu nhiên

2.

Trong sắp xếp chèn, bước nào được thực hiện đầu tiên khi chèn một phần tử vào dãy con đã sắp?

a)

Dịch các phần tử lớn hơn sang phải

b)

Tìm phần tử lớn nhất

c)

Hoán đổi phần tử đầu tiên và cuối cùng

d)

Xóa phần tử nhỏ nhất

3.

Thuật toán sắp xếp chọn có đặc điểm gì nổi bật?

a)

Chọn phần tử lớn nhất (hoặc nhỏ nhất) mỗi lượt

b)

Dịch chuyển toàn bộ dãy

c)

Sử dụng đệ quy

d)

Tính ngẫu nhiên cao

4.

Trong thuật toán sắp xếp chọn, ở mỗi bước thứ i, chương trình thực hiện việc gì?

a)

Chọn phần tử lớn nhất để đưa về cuối dãy

b)

Chọn phần tử nhỏ nhất trong đoạn còn lại để đưa về vị trí thứ 1

c)

Đổi chỗ ngẫu nhiên hai phần tử

d)

Sắp xếp dãy theo thứ tự giảm dần

5.

Trong sắp xếp chọn giảm dần, phần tử nào được đưa về đầu dãy sau mỗi vòng lặp?

a)

Nhỏ nhất

b)

Lớn nhất

c)

Ngẫu nhiên

d)

Phần tử ở giữa

6.

Trong Python, hàm open("diem.inp") có chức năng gì?

a)

Mo file de ghi

b)

Mở file để đọc

c)

Xóa nội dung file

d)

Thêm dữ liệu vào file

7.

Sau khi đọc tệp điểm, danh sách điểm trung bình nên lưu vào kiểu dữ liệu nào?

a)

Chuỗi

b)

Danh sách (list)

c)

Từ điển (dictionary)

d)

Số nguyên

8.

Trong sắp xếp chèn, khi nào vòng lặp dừng?

a)

Khi tìm được vị trí chèn thích hợp

b)

Khi dịch hết các phần tử

c)

Khi tìm được phần tử lớn nhất

d)

Khi danh sách bị đảo ngược

9.

Trong nhiệm vụ 2, giá trị nào sẽ được chọn ở mỗi lượt của thuật toán sắp xếp chọn?

a)

Giá trị lớn nhất còn lại

b)

Giá trị nhỏ nhất

c)

Giá trị trung bình

d)

Giá trị ở giữa

10.

Phát biểu nào đúng về sự khác nhau giữa sắp xếp chọn và sắp xếp chèn?

a)

Sắp xếp chọn luôn nhanh hơn

b)

Sắp xếp chèn tốt hơn khi dữ liệu gần sắp xếp

c)

Sắp xếp chọn dùng cho dữ liệu lớn

d)

Cả hai giống hệt nhau

11.

Hàm float(line) trong Python có tác dụng gì?

a)

Chuyển dòng văn bản thành số thực

b)

Chuyển số thực thành văn bản

c)

Làm tròn số

d)

Kiểm tra kiểu dữ liệu

12.

Trong Python, phương thức insert(i, x) của danh sách làm gì?

a)

Thêm x vào vị trí i

b)

Xóa phần tử ở vị trí i

c)

Hoán đổi hai phần tử

d)

Tìm phần tử lớn nhất

13.

Phát biểu nào đúng với thuật toán sắp xếp chọn?

a)

Số lần hoán đổi tối đa bằng số lượng phần tử

b)

Hoán đổi liên tục các phần tử lân cận

c)

Chỉ thực hiện tối đa một hoán đổi mỗi lượt

d)

Không thực hiện hoán đổi

14.

Phép so sánh nào quan trọng nhất trong sắp xếp chèn?

a)

So sánh phần tử hiện tại với phần tử dứng trước

b)

So sánh phần tử lớn nhất và nhỏ nhất

c)

So sánh phần tử đầu và cuối

d)

So sánh theo ngẫu nhiên

15.

Hàm splitlines() trong Python dùng để?

a)

Cắt chuỗi thành danh sách các dòng

b)

Tính tổng các số

c)

Đọc file

d)

Chuyển số sang chuỗi

16.

Trong nhiệm vụ 1, kết quả sau khi sắp xếp tăng dần là?

a)

Danh sách có số lượng giảm dần

b)

Danh sách có số lượng tăng dần

c)

Danh sách không đổi

d)

Danh sách bị đảo ngược

17.

Phát biểu nào đúng về ưu điểm của sắp xếp chèn?

a)

Dễ cài đặt, tốt khi dữ liệu gần sắp xếp

b)

Luôn nhanh nhất

c)

Phù hợp cho dữ liệu lớn

d)

Dùng cho mọi loại dữ liệu

18.

Trong sắp xếp chọn, điều gì xảy ra sau mỗi lượt?

a)

1 ptu dc đặt đúng vtri

b)

tất cả ptu bị hoán đổi

c)

danh sách ngẫu nhiên

d)

không thay đổi gì

19.

Đâu là nhược điểm của thuật toán nổi bọt?

a)

Tốn nhiều bộ nhớ

b)

Tốc độ chậm khi danh sách dài

c)

Khó cài đặt

d)

Không chính xác

20.

Trong nhiệm vụ 2, để sắp xếp giảm dần, ta cần tìm?

a)

Phần tử nhỏ nhất

b)

Phần tử lớn nhất

c)

Phần tử trung bình

d)

Phần tử ngẫu nhiên

21.

Mục tiêu của kiểm thử chương trình là gì?

a)

Chứng minh tính đúng tuyệt đối của chương trình

b)

Tìm và sửa lỗi trong chương trình

c)

Tăng số lượng dữ liệu đầu vào

d)

Rút gọn chương trình

22.

Phương pháp nào có thể chứng minh được tính đúng của thuật toán?

a)

Kiểm thử với bộ dữ liệu mẫu

b)

Lặp lại nhiều lần kiểm thử

c)

Dùng bất biến vòng lặp và quy nạp toán học

d)

So sánh với các chương trình khác

23.

Độ phức tạp tính toán gồm mấy yếu tố chính?

a)

1

b)

2

c)

3

d)

4

24.

Độ phức tạp thời gian phụ thuộc vào yếu tố nào?

a)

Số lần thực hiện các phép toán/ câu lệnh

b)

Số lần nhập dữ liệu

c)

Dung lượng ổ cứng

d)

Tốc độ bàn phím

25.

Mục đích của phương pháp kiểm thử bằng bộ dữ liệu là gì?

a)

Chứng minh thuật toán đúng

b)

Kiểm tra tính đúng với nhiều tình huống

c)

Giảm kích thước chương trình

d)

Tăng tốc độ xử lý

26.

Khi kiểm thử không phát hiện lỗi, ta có thể kết luận gì?

a)

Chương trình hoàn toàn đúng

b)

Chương trình có thể còn lỗi

c)

Chương trình sai

d)

Chương trình cần viết lại

27.

Độ phức tạp không gian là gì?

a)

Thời gian thực hiện chương trình

b)

Dung lượng bộ nhớ cần dùng

c)

Kích thước của màn hình

d)

Tốc

28.

Thuật toán/Chương trình được coi là hiệu quả khi:

a)

Chạy chậm, tiêu tốn ít bộ nhớ

b)

Tốn nhiều bộ nhớ, nhanh

c)

Thời gian và bộ nhớ tiêu tốn ít

d)

Chỉ cần chạy được

29.

Bất biến vòng lặp thường dùng để:

a)

Kiểm tra bộ nhớ

b)

Chứng minh tính đúng thuật toán

c)

Tinh tốc độ xử lý

d)

Tính tổng số dòng lệnh

30.

Để kiểm tra tính đúng chương trình, cách nào sau đây chưa đủ đảm bảo?

a)

Chạy với nhiều bộ dữ liệu kiểm thử

b)

Phân tích thuật toán bằng logic

c)

Kiểm tra thủ công từng bước

d)

Chi kiểm thử 1 dữ liệu

31.

Độ phức tạp của chương trình phụ thuộc chủ yếu vào:

a)

Dung lượng ổ cứng

b)

Cấu trúc dữ liệu và thuật toán sử dụng

c)

Màu sắc giao diện

d)

Tên biến

32.

Phát biểu nào dùng về kiểm thử chương trình?

a)

Chứng minh được tính đúng tuyệt đối

b)

Chỉ giúp phát hiện lỗi

c)

Chứng minh đúng nhờ so sánh với chương trình khác

d)

Giảm bộ nhớ cần dùng

33.

Đánh giá hiệu quả chương trình KHÔNG bao gồm:

a)

Tính rõ ràng

b)

Tính dễ hiểu

c)

Tính bất biến

d)

Tính dễ bảo trì

34.

Quy trình đánh giá hiệu quả chương trình phổ thông thường dựa vào:

a)

Độ phức tạp thời gian

b)

Số dòng code

c)

Giao diện màu sắc

d)

Phần mềm vẽ đồ thị

35.

Tiêu chí nào sau đây KHÔNG đánh giá hiệu quả chương trình?

a)

Tính dễ bảo trì

b)

Số dòng lệnh

c)

Tính rõ ràng

d)

Tính dễ cài đặt

36.

Phép quy nạp toán học thường dùng trong:

a)

Thiết kế giao diện

b)

Chứng minh thuật toán

c)

Kiểm tra lỗi cú pháp

d)

Tính toán tốc độ

37.

Câu 37: Đối với các dịch vụ trực tuyến, điều quan trọng nhất là:

a)

Tính dễ bảo trì và độ tin cậy

b)

Tốc độ đánh máy

c)

Màu nền đẹp

d)

Ít dòng code

38.

Câu 38: Phát biểu nào sau đây đúng?

a)

Kiểm thử càng nhiều bộ dữ liệu càng tăng độ tin cậy

b)

Kiểm thử 1 lần là đủ

c)

Không cần kiểm thử với dữ liệu sai

d)

Chỉ cần kiểm thử với dữ liệu đúng

39.

Câu 39: Một chương trình tối ưu là chương trình có:

a)

Độ phức tạp thấp

b)

Số dòng lệnh dài

c)

Giao diện đẹp

d)

Nhiều hàm

40.

Câu 40: Đánh giá độ phức tạp thời gian thường dựa vào:

a)

Số lần thực hiện phép toán

b)

Dung lượng tệp

c)

Số ký tự tên biến

d)

Số hình ảnh trên giao diện

41.

Câu 41: Khi đánh giá thời gian thực hiện chương trình mà không cần chạy chương trình, ta làm gì?

a)

Đo thời gian thực tế khi chạy chương trình

b)

Tính tổng thời gian các phép tính và lệnh đơn của chương trình

c)

Dùng đồng hồ đo thời gian

d)

Cài đặt phần mềm kiểm thử

42.

Câu 42: Trong phân tích thời gian chương trình, mỗi phép tính hoặc lệnh đơn thường được tính bằng:

a)

Một đơn vị bộ nhớ

b)

Một đơn vị thời gian

c)

Một giây

d)

Một vòng lặp

43.

Câu 43: Tổng thời gian chạy của chương trình I là:

a)

n + 1

b)

n + 2

c)

n + 3

d)

n + 4

44.

Câu 44: Tổng thời gian chạy của chương trình 2 là:

a)

n^2 + 3

b)

n + 3

c)

n + 2

d)

n2 + 2

45.

Câu 45: Trong chương trình, phép toán thực hiện nhiều nhất và ảnh hưởng chính đến thời gian được gọi là:

a)

Phép toán ngẫu nhiên

b)

Phép toán tích cực

c)

Phép toán bị động

d)

Phép toán phụ

46.

Hàm độ phức tạp thời gian của chương trình 1 được kí hiệu là:

a)

O(n2)

b)

O(1)

c)

O(n)

d)

O(log n)

47.

Hàm độ phức tạp thời gian của chương trình 2 được kí hiệu là:

a)

O(n^2)

b)

O(1)

c)

O(n)

d)

O(log n)

48.

Kí hiệu O-lớn dùng để:

a)

Tính toán kết quả

b)

Đo lường độ chính xác

c)

Phân tích và so sánh bậc hàm thời gian

d)

Đếm số vòng lặp

49.

Quy tắc cộng trong tỉnh độ phức tạp thời gian là:

a)

O(f(n) + g(n)) = O(f(n))

b)

O(f(n)+g(n)) = O(g(n))

c)

O(f(n)+g(n)) = O(max(f(n), g(n)))

d)

O(f(n) + g(n)) = O(f(n)g(n))

50.

Quy tắc nhân với hằng số là:

a)

O(C.f(n)) = O(C)

b)

O(C.f(n)) = O(f(n))

c)

O(C.f(n))=C

d)

O(C.f(n)) = C.f(n)

51.

Quy tắc nhân trong độ phức tạp thời gian với hàm số là:

a)

O(f(n).g(n)) = O(f(n))

b)

O(f(n).g(n)) = O(g(n))

c)

O(f(n).g(n)) = O(f(n).O(g(n)))

d)

O(f(n).g(n)) = O(1)

52.

Trong ví dụ, tại sao ta chọn c = 2 và n0 = 3 cho T1(n)=n+3?

a)

Vì 2 là hằng số bất kì và 3 là số nhỏ nhất

b)

Vì đảm bảo T1(n)<c.n khi n>10

c)

Vì giúp độ phức tạp tăng nhanh hơn

d)

Vì giảm số phép tính

53.

Khi n rất lớn, bậc của O(n2) so với O(n) là:

a)

Nhỏ hơn

b)

Lớn hon

c)

Bằng nhau

d)

Không xác định

54.

Trong chương trình 2, tổng số vòng lặp là:

a)

n

b)

n2

c)

2n

d)

2n2

55.

Nếu chương trình có một vòng lặp n lần, độ phức tạp là:

a)

O(1)

b)

O(n)

c)

O(n2)

d)

O(log n)

56.

Nếu chương trình có hai vòng lặp lồng nhau n lần, độ phức tạp là:

a)

O(1)

b)

O(n)

c)

O(n2)

d)

O(log n)

57.

Tại sao phải phân tích độ phức tạp thuật toán?

a)

Để tối ưu bộ nhớ

b)

Để biết độ khó của chương trình

c)

Để biết chương trình có chạy nhanh, hiệu quả không

d)

Để cài đặt phần mềm

58.

Khi nào dùng quy tắc cộng trong tính độ phức tạp?

a)

Khi có hai đoạn chương trình nối tiếp

b)

Khi có hai vòng lặp lồng nhau

c)

Khi nhân hai hàm

d)

Khi cộng hằng số

59.

Độ phức tạp thời gian thường phụ thuộc vào:

a)

Dữ liệu đầu vào

b)

Màu sắc giao diện

c)

Dung lượng ổ cứng

d)

Thời tiết

60.

O-lớn biểu diễn độ phức tạp khi:

a)

n tiến về 0

b)

n tiến về vô cùng

c)

n=1

d)

n=10

61.

Độ phức tạp thời gian của thuật toán tìm kiếm tuần tự trong trường hợp tồi nhất là:

a)

O(1)

b)

O(n)

c)

O(n2)

d)

O(log n)

62.

Trong tìm kiếm tuần tự, phép so sánh ở dòng nào là phép toán tích cực?

a)

Dòng 2

b)

Dòng 3

c)

Dòng 4

d)

Dòng 5

63.

Tổng số phép toán cơ bản của thuật toán tìm kiếm tuần tự trong trường hợp tồi nhất là:

a)

n

b)

n+1

c)

n2

d)

1

64.

Độ phức tạp thời gian của thuật toán tìm kiếm tuần tự là:

a)

Tuyến tính

b)

Bình phương

c)

Lôgarit

d)

Hằng số

65.

Trong sắp xếp chọn, số vòng lặp bên ngoài chạy từ:

a)

0 đến n-2

b)

0 đến n-1

c)

1 đến n

d)

1 đến n-1

66.

Ở mỗi bước của vòng lặp ngoài trong sắp xếp chọn, ta cần thực hiện:

a)

Chọn phần tử lớn nhất

b)

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

c)

Sắp xếp lại toàn bộ mảng

d)

Không làm gì

67.

Số lần lặp của vòng lặp trong của sắp xếp chọn ở bước 1 là:

a)

n-i

b)

n-1

c)

i

d)

n-i-1

68.

Trong sắp xếp chọn, phép so sánh tại dòng 6 tiêu tốn:

a)

1 đơn vị thời gian

b)

2 đơn vị thời gian

c)

3 đơn vị thời gian

d)

0,5 đv tgian

69.

Trong sắp xếp chọn, mỗi bước lặp của vòng lặp trong tốn tối đa:

a)

1 đon vi

b)

2 đơn vị

c)

3 đơn vị

d)

n don vi

70.

Lệnh đổi chỗ ở dòng 8 trong sắp xếp chọn tiêu tốn:

a)

1 đơn vị

b)

2 đơn vị

c)

3 đơn vị

d)

n đơn vị

71.

Tổng thời gian thực hiện sắp xếp chọn được tính là:

a)

n

b)

n2

c)

n2+3n-3

d)

2n

72.

Độ phức tạp O-lớn của sắp xếp chọn là

a)

O(n)

b)

O(n2)

c)

O(1)

d)

O(log n)

73.

Trong phân tích độ phức tạp, phép toán được thực hiện nhiều nhất gọi là:

a)

Phép toán tích cực

b)

Phép toán bị động

c)

Phép toán ngẫu nhiên

d)

Phép toán chính

74.

Trong bài toán sắp xếp chọn, phép toán tích cực là:

a)

Phép so sánh

b)

Phép cộng

c)

Phép nhân

d)

Phép chia

75.

Khi xác định độ phức tạp thời gian, hệ số hằng số:

a)

Luôn giữ nguyên

b)

Có thể bỏ qua

c)

Luôn nhân thêm

d)

Luôn chia

76.

Nếu T(n) = n^ + 3n - 3, thì T(n)=?

a)

O(n2)

b)

O(n)

c)

O(1)

d)

O(n3)

77.

Phép cộng có thể được coi là

a)

Phép toán tích cực trong sắp xếp chọn

b)

Phép toán tích cực trong tìm kiếm tuần tự

c)

Không phải phép tích cực

d)

Tất cả sai

78.

Sắp xếp chọn hoạt động hiệu quả nhất khi

a)

Mảng đã được sắp xếp

b)

Mảng ngẫu nhiên

c)

Mảng nghịch

d)

Không có sự khác biệt

79.

Tìm kiếm tuần tự hoạt động hiệu quả nhất khi:

a)

Phần tử cần tìm ở đầu mảng

b)

Phần tử cần tìm ở cuối mảng

c)

Không tìm thấy

d)

Không có sự khác biệt

80.

Sắp xếp chọn thuộc loại:

a)

Thuật toán sắp xếp đơn giản

b)

Thuật toán chia để trị

c)

Thuật toán đệ quy

d)

Thuật toán tìm kiếm