Font size
WorksheetsCHƯƠNG 1. GIỚI THIỆU - 1.1. Khái niệm thuật toán
Total questions: 99
Worksheet time: 50mins
Điền vào chỗ trống: Thuật toán là tập các chỉ dẫn (__________) có thứ tự, không nhập nhằng để giải bài toán.
Instructions
Variables
Loops
Functions
Tại mỗi bước của thuật toán phải rõ ràng, không được nhập nhằng.
Đúng
Sai
Thuật toán có thể biểu diễn bằng nhiều cách khác nhau.
Đúng
Sai
Điền vào chỗ trống: Thuật toán đầu tiên là thuật toán ________ dùng để tìm ước số chung lớn nhất.
Euclid
Newton
Dijkstra
Fibonacci
Điền vào chỗ trống: Trong thuật toán Euclid, nếu n = 0, ước số chung lớn là ________.
m
0
1
n
Điền vào chỗ trống: Trong thuật toán Euclid, bước 2 là: r = m chia dư cho ________.
n
m
r
k
Điền vào chỗ trống: Trong thuật toán Euclid, bước 3 là: m ← n và n ← ________, chuyển đến bước 1.
r
m+n
m-n
m*n
Dựa vào sơ đồ khối mô tả thuật toán Euclid tìm ước số chung lớn nhất, ký hiệu hình elip dùng để biểu diễn điều gì?
Kiểm tra điều kiện
Điểm bắt đầu hoặc kết thúc thuật toán
Mô tả dữ liệu đầu vào/đầu ra
Thực hiện 1 thao tác, 1 bước của thuật toán
Điền vào chỗ trống: Trong thuật toán Euclid, khi n = 0 thì giá trị trả về là _____
m
n
0
1
Theo thuật toán Euclid, bước nào sau đây được lặp lại cho đến khi n = 0?
A. return m
B. r ← m mod n; m ← n; n ← r
C. Đầu vào: 2 số nguyên m, n
D. Kiểm tra điều kiện n = 0
Bước đầu tiên của thuật toán tìm ước số chung lớn nhất của hai số m, n là gì?
Đặt t = min{m, n}.
Đặt t = max{m, n}.
Đặt t = m + n.
Đặt t = m - n.
Trong thuật toán tìm ước số chung lớn nhất, điều kiện nào khiến thuật toán chuyển sang bước giảm t đi 1?
Khi m chia cho t hoặc n chia cho t có dư khác 0.
Khi m và n đều là số nguyên tố.
Khi t lớn hơn m hoặc n.
Khi m hoặc n bằng 0.
Thuật toán tìm ước số chung lớn nhất của hai số m, n sẽ trả về giá trị nào nếu m chia hết cho t và n chia hết cho t?
Trả về giá trị t.
Trả về giá trị m.
Trả về giá trị n.
Trả về giá trị 1.
Sơ đồ khối trong Hình 1-2 mô tả thuật toán nào?
Thuật toán tìm ước số chung lớn nhất của hai số.
Thuật toán sắp xếp nổi bọt.
Thuật toán tìm kiếm nhị phân.
Thuật toán tính tổng dãy số.
Bước 1 của thuật toán tìm ước số chung lớn nhất bằng phân tích thừa số nguyên tố là gì?
Phân tích m thành tích các thừa số nguyên tố.
Lấy tổng của m và n.
Chia m cho n.
Tìm số nguyên tố lớn nhất nhỏ hơn m.
Theo ví dụ minh họa, ước số chung lớn nhất của 60 và 24 là bao nhiêu?
6
8
12
24
Thuật toán thứ 3 tìm ước số chung lớn nhất của hai số m, n sử dụng phương pháp nào?
Phân tích hai số thành các thừa số nguyên tố và tìm tích các thừa số chung.
Chia hai số cho nhau liên tiếp cho đến khi được số dư bằng 0.
Cộng hai số lại rồi chia cho 2.
Lấy số lớn trừ số nhỏ cho đến khi hai số bằng nhau.
Ý nghĩa của biến 'us' trong thuật toán gcd3(m, n) là gì?
Biến lưu kết quả ước số chung lớn nhất.
Biến đếm số lần lặp của thuật toán.
Biến lưu giá trị trung gian trong quá trình tính toán.
Biến kiểm tra điều kiện dừng của thuật toán.
Hình 1-3 mô tả thuật toán nào?
Thuật toán tìm bội chung nhỏ nhất
Thuật toán tìm ước số chung lớn nhất
Thuật toán sắp xếp dãy số
Thuật toán tính tổng hai số
Trong sơ đồ khối, bước đầu tiên là gì?
Phân tích m thành tích các thừa số nguyên tố
Đầu vào: 2 số nguyên m, n
return us
us ← 1; i ← 1; j ← 1
Điền vào chỗ trống: Trong sơ đồ khối, nếu p_i = q_j thì _________.
us ← us * p_i; i ← i + 1; j ← j + 1
us ← us + p_i; i ← i + 1; j ← j + 1
us ← us * p_i; i ← i - 1; j ← j + 1
us ← us * p_i; i ← i + 1; j ← j - 1
Mục đích của thuật toán trong Hình 1-3 là:
Tìm kiếm phần tử lớn nhất trong một dãy số.
Sắp xếp các phần tử theo thứ tự tăng dần.
Tính tổng các phần tử trong mảng.
Tìm kiếm phần tử nhỏ nhất trong một dãy số.
Dựa vào Hình 1-4, bước đầu tiên trong quy trình phân tích và thiết kế thuật toán là gì?
Đọc hiểu bài toán.
Viết mã giả cho thuật toán.
Kiểm thử thuật toán.
Tối ưu hóa thuật toán.
Theo Hình 1-4, sau khi thiết kế thuật toán, bước tiếp theo là gì?
Chứng minh tính đúng đắn.
Viết mã giả cho thuật toán.
Kiểm tra dữ liệu đầu vào.
Tối ưu hóa thuật toán.
Việc đọc hiểu bài toán trước khi thiết kế thuật toán giúp đảm bảo điều gì?
Giúp xác định đúng yêu cầu và hướng giải quyết phù hợp
Giúp tiết kiệm thời gian lập trình mà không cần hiểu bài toán
Giúp thuật toán chạy nhanh hơn mà không cần kiểm tra đầu vào
Giúp bỏ qua các bước kiểm thử thuật toán
Khi nào nên chọn thuật toán xấp xỉ thay vì thuật toán chính xác?
Khi bài toán quá phức tạp hoặc không thể giải được bằng thuật toán chính xác.
Khi luôn có thể tìm được lời giải tối ưu một cách dễ dàng.
Khi thuật toán chính xác nhanh hơn thuật toán xấp xỉ.
Khi không cần quan tâm đến thời gian tính toán.
Hình 1-4 mô tả quy trình phân tích và thiết kế thuật toán gồm bao nhiêu bước?
3 bước
4 bước
5 bước
6 bước
Kĩ thuật thiết kế thuật toán là phương pháp chung để giải bài toán được áp dụng cho nhiều bài toán. Đúng hay Sai?
Đúng
Sai
Sau khi thiết kế xong thuật toán, cần phải mô tả lại thuật toán này bằng ngôn ngữ gì?
Ngôn ngữ tự nhiên hoặc ngôn ngữ lập trình giả mã.
Ngôn ngữ máy tính nhị phân.
Ngôn ngữ lập trình bậc thấp.
Ngôn ngữ hình ảnh hoặc biểu đồ.
Một kĩ thuật chung để chứng minh tính đúng đắn của thuật toán là sử dụng phương pháp nào?
Phương pháp quy nạp toán học.
Phương pháp thử và sai.
Phương pháp loại trừ.
Phương pháp trực giác.
Hai tiêu chí để đánh giá hiệu quả của thuật toán là gì?
Độ lớn đầu ra (tiêu chí về không gian) và thời gian.
Số lượng biến sử dụng và độ phức tạp của thuật toán.
Số lượng vòng lặp và số lượng hàm gọi.
Tốc độ xử lý và số lượng dòng lệnh.
Hiệu quả thời gian (còn gọi là độ phức tạp về thời gian) là ______ thực hiện của thuật toán từ khi nhận dữ liệu đầu vào cho đến khi có dữ liệu đầu ra.
thời gian
bộ nhớ
dữ liệu
kết quả
Điền vào chỗ trống: Hiệu quả không gian (còn gọi là độ phức tạp về không gian) là ______ đơn vị bộ nhớ sử dụng cho thuật toán kể cả dữ liệu vào/ra.
số lượng
chất lượng
tốc độ
kích thước
Kích thước đầu vào của một thuật toán là một hàm số 1 tham số n chỉ kích thước ______.
đầu vào
kết quả
bộ nhớ
thời gian
Điền vào chỗ trống: Trong bài toán kiểm tra số nguyên dương n có phải là nguyên tố hay không, kích thước đầu vào chính là số ______ cần kiểm tra.
n
0
1
2
Đơn vị đo thời gian chạy của một chương trình thực hiện theo thuật toán có thể là gì?
giây, phần nghìn giây
mét, kilômét
lít, mililít
kg, gam
Phép toán cơ bản trong phân tích thuật toán là gì?
Những phép toán góp phần lớn trong tổng thời gian chạy của thuật toán.
Những phép toán chỉ xuất hiện một lần trong thuật toán.
Những phép toán không ảnh hưởng đến thời gian chạy của thuật toán.
Những phép toán chỉ dùng để kiểm tra điều kiện.
Cho thuật toán SequentialSearch(A[0..n-1], K) dưới đây: ALGORITHM SequentialSearch(A[0..n - 1], K) i ← 0 while (i < n) and (A[i] ≠ K) do i ← i + 1 if (i < n) then return i
Tìm kiếm một phần tử K trong mảng A.
Sắp xếp mảng A theo thứ tự tăng dần.
Tính tổng các phần tử trong mảng A.
Tìm phần tử lớn nhất trong mảng A.
Một hàm t(n) được gọi là thuộc lớp hàm O(g(n)), kí hiệu t(n) ∈ O(g(n)), nếu t(n) bị chặn trên bởi hằng số nhân với g(n) tức là tồn tại số c và n₀ sao cho: t(n) ≤ c.g(n) ∀ n ≥ n₀. Hàm t(n) được thể hiện qua Hình 2-1. Chọn đáp án đúng để điền vào chỗ trống: t(n) ≤ ___.
c.g(n)
g(n)/c
c + g(n)
g(n) - c
Cho ví dụ: Chứng minh hàm t(n) = 100n + 5 ∈ O(n²). Số c và n₀ tương ứng trong trường hợp này là bao nhiêu?
c = 101, n₀ = 5
c = 5, n₀ = 100
c = 100, n₀ = 1
c = 105, n₀ = 2
Điền vào chỗ trống: t(n) = 1/2 n(n-1) ∈ O(___).
n²
n
log n
2n
Kí hiệu O có tính chất quan trọng sau: t₁(n) ∈ O(g₁(n)) và t₂(n) ∈ O(g₂(n)), khi đó t₁(n) + t₂(n) ∈ O(___).
max{g₁(n), g₂(n)}
g₁(n) + g₂(n)
min{g₁(n), g₂(n)}
g₁(n) * g₂(n)
Điền vào chỗ trống: i=1∑ucai=ci=1∑uai=?
c i=1∑uai
i=1∑u(c+ai)
c + i=1∑uai
i=1∑uc⋅ai
Điền vào chỗ trống: i=1∑u(ai±bi)=i=1∑uai±i=1∑ubi=?
i=1∑uai±i=1∑ubi
i=1∑u(aibi)
i=1∑uaibi
i=1∑u(ai+b1)
Điền vào chỗ trống: i=l∑u1=u−l+1=?
u - l + 1
u + l + 1
u - l - 1
u + l - 1
Điền vào chỗ trống: i=1∑ni=1+2+...+n=2n(n+1)=?
2n(n+1)
2n(n−1)
n2
2n
Điền vào chỗ trống: i=1∑ni2=12+22+...+n2=6n(n+1)(2n+1)=?
6n(n+1)(2n+1)
2n(n+1)
6n(n+1)(n+2)
4n2(n+1)2
Điền vào chỗ trống: i=0∑nai=a0+a1+...+an=a−1an+1−1,a=1;i=0∑n2i=2n+1−1=?
2n+1−1
2n−1
2n+1+1
2n+1
Điền vào chỗ trống: i=0∑ni2i=1×20+2×21+...+n×2n=(n−1)×2n+1+2=?
(n−1)×2n+1+2
n×2n+1−1
(n+1)×2n+2
n2×2n
Điền vào chỗ trống: i=1∑ni1=1+21+...+n1≈lnn+γ, với γ≈0.5772=?
\ln n + \gamma, với \gamma \approx 0.5772
\ln n - \gamma, với \gamma \approx 1.4142
n^2 + γ , với γ≈3.1416
\ln n + \gamma, với \gamma \approx 2.7183
Điền vào chỗ trống: i=1∑nlogi≈ _________.
nlogn
n2
logn!
n
Điền vào chỗ trống: i=1∑nik=1k+2k+...+nk≈k+11nk+1 . Giá trị còn thiếu trong công thức là _________.
k+11nk+1
k1nk
knk+1
nk+1
Thuật toán MaxElement nhận đầu vào là gì?
Một số nguyên
Một mảng số nguyên
Một danh sách ký tự
Một chuỗi
Đầu ra của thuật toán UniqueElements là gì?
Giá trị lớn nhất trong mảng
Trả về 'true' nếu tất cả các phần tử là phân biệt, ngược lại 'false'
Tổng các phần tử trong mảng
Số lượng phần tử trùng nhau
Độ phức tạp của thuật toán MaxElement là bao nhiêu?
O(n)
O(log n)
O(n2)
O(1)
Định nghĩa phép nhân hai ma trận vuông A và B cấp n x n là gì?
Cij=sumk=0n−1Aik∗Bkj
Cij=sumk=0n−1Aik+Bkj
C_{ij} = sumk=0n−1Aik−Bkj
Cij=sumk=0n−1Aik/Bkj
Độ phức tạp của thuật toán nhân hai ma trận vuông cấp n x n là gì?
O(n2)
O(n3)
O(n)
O(2n)
Thuật toán Binary(n) dùng để làm gì?
Tính tổng các chữ số của n
Tính độ dài chuỗi nhị phân biểu diễn số nguyên n
Tính tổng các ước của n
Tính số lượng số nguyên tố nhỏ hơn n
Độ phức tạp của thuật toán Binary(n) là gì?
O(log n)
O(n)
O(n2)
O(1)
Điền vào chỗ trống: Độ phức tạp của thuật toán chia đôi liên tục là ________.
O(log n)
O(n)
O(n2)
O(1)
Điền vào chỗ trống: Công thức đệ quy tính giai thừa F(n) là ________.
F(n) = F(n-1) * n
F(n) = F(n+1) * n
F(n) = n + F(n-1)
F(n) = n * F(n+1)
Phép toán cơ bản trong thuật toán tính giai thừa F(n) là gì?
Phép cộng
Phép chia
Phép nhân
Phép trừ
Điền vào chỗ trống: Đầu vào của thuật toán tính giai thừa F(n) là ________.
Số nguyên dương n
Số thực n
Số nguyên âm n
Số nguyên tố n
Bài toán chuyển tháp Hà Nội yêu cầu chuyển n tháp từ vị trí A đến vị trí B, mỗi lần chỉ được đặt tháp nhỏ lên tháp lớn và trong quá trình chuyển lấy vị trí C làm trung gian.
Đúng
Sai
Điền vào chỗ trống: Độ phức tạp của thuật toán chuyển tháp Hà Nội là O(___).
2n
n2
n!
n log n
Công thức đệ quy để tính số phép di chuyển t(n) trong bài toán tháp Hà Nội là gì?
t(n) = t(n-1) + 1 + t(n-1)
t(n) = t(n-1) + n
t(n) = 2*t(n-1) - 1
t(n) = t(n-1) * 2
Thuật toán BinRec(n) được sử dụng để làm gì?
Chia nhỏ một số thành các lũy thừa của 2
Sắp xếp một mảng theo thứ tự tăng dần
Tìm kiếm nhị phân trong một mảng đã sắp xếp
Tính tổng các số nguyên tố nhỏ hơn n
Điền vào chỗ trống: Công thức đệ quy để đếm số bit nhị phân là t(n) = t(___) + 1 với t(1) = 0.
n/2
n-1
2n
n+1
Cho các bài toán sau, chỉ ra: (i) kích thước dữ liệu đầu vào, (ii) phép toán cơ bản, (iii) phép toán cơ bản có thay đổi hay không nếu thay đổi dữ liệu đầu vào nhưng giữ nguyên kích thước. 1. Tính tổng n số nguyên.
(i) Kích thước dữ liệu đầu vào: n; (ii) Phép toán cơ bản: phép cộng; (iii) Không thay đổi.
(i) Kích thước dữ liệu đầu vào: n; (ii) Phép toán cơ bản: phép nhân; (iii) Có thay đổi.
(i) Kích thước dữ liệu đầu vào: 1; (ii) Phép toán cơ bản: phép cộng; (iii) Có thay đổi.
(i) Kích thước dữ liệu đầu vào: n2 ; (ii) Phép toán cơ bản: pheˊptrừ ; (iii) Không thay đổi.
Cho các bài toán sau, chỉ ra: (i) kích thước dữ liệu đầu vào, (ii) phép toán cơ bản, (iii) phép toán cơ bản có thay đổi hay không nếu thay đổi dữ liệu đầu vào nhưng giữ nguyên kích thước. 2. Tính n!.
(i) Kích thước dữ liệu đầu vào: n; (ii) Phép toán cơ bản: phép nhân; (iii) Không thay đổi.
(i) Kích thước dữ liệu đầu vào: n; (ii) Phép toán cơ bản: phép cộng; (iii) Có thay đổi.
(i) Kích thước dữ liệu đầu vào: n2 ; (ii) Phép toán cơ bản: pheˊpchia ; (iii) Không thay đổi.
(i) Kích thước dữ liệu đầu vào: log n; (ii) Phép toán cơ bản: phép trừ; (iii) Có thay đổi.
Cho các bài toán sau, chỉ ra: (i) kích thước dữ liệu đầu vào, (ii) phép toán cơ bản, (iii) phép toán cơ bản có thay đổi hay không nếu thay đổi dữ liệu đầu vào nhưng giữ nguyên kích thước. 3. Tìm số lớn nhất trong dãy số.
(i) Kích thước dữ liệu đầu vào: n; (ii) Phép toán cơ bản: phép so sánh; (iii) Không thay đổi.
(i) Kích thước dữ liệu đầu vào: 1; (ii) Phép toán cơ bản: phép cộng; (iii) Có thay đổi.
(i) Kích thước dữ liệu đầu vào: n2 ; (ii) Phép toán cơ bản: pheˊpnha^n ; (iii) Không thay đổi.
(i) Kích thước dữ liệu đầu vào: n; (ii) Phép toán cơ bản: phép chia; (iii) Có thay đổi.
Cho các bài toán sau, chỉ ra: (i) kích thước dữ liệu đầu vào, (ii) phép toán cơ bản, (iii) phép toán cơ bản có thay đổi hay không nếu thay đổi dữ liệu đầu vào nhưng giữ nguyên kích thước. 4. Thuật toán Euclid tìm ước số chung lớn nhất của a, b.
(i) Kích thước dữ liệu đầu vào: số chữ số của a và b; (ii) Phép toán cơ bản: phép chia lấy dư; (iii) Có thể thay đổi tùy thuộc vào giá trị của a và b.
(i) Kích thước dữ liệu đầu vào: giá trị tuyệt đối của a và b; (ii) Phép toán cơ bản: phép cộng; (iii) Không thay đổi khi thay đổi dữ liệu đầu vào.
(i) Kích thước dữ liệu đầu vào: tổng của a và b; (ii) Phép toán cơ bản: phép trừ; (iii) Luôn thay đổi khi thay đổi dữ liệu đầu vào.
(i) Kích thước dữ liệu đầu vào: số lượng ước của a và b; (ii) Phép toán cơ bản: phép nhân; (iii) Không thay đổi khi thay đổi dữ liệu đầu vào.
Cho các bài toán sau, chỉ ra: (i) kích thước dữ liệu đầu vào, (ii) phép toán cơ bản, (iii) phép toán cơ bản có thay đổi hay không nếu thay đổi dữ liệu đầu vào nhưng giữ nguyên kích thước. Nhân hai số nguyên có n chữ số.
(i) Kích thước dữ liệu đầu vào: n; (ii) Phép toán cơ bản: phép nhân; (iii) Không thay đổi.
(i) Kích thước dữ liệu đầu vào: 2n; (ii) Phép toán cơ bản: phép cộng; (iii) Có thay đổi.
(i) Kích thước dữ liệu đầu vào: n2 ; (ii) Phép toán cơ bản: pheˊpchia ; (iii) Không thay đổi.
(i) Kích thước dữ liệu đầu vào: n; (ii) Phép toán cơ bản: phép trừ; (iii) Có thay đổi.
Xét bài toán cộng hai ma trận cấp m × n. đánh giá độ phức tạp của thuật toán trên.
Phép toán cơ bản là phép cộng. Độ phức tạp của thuật toán là O(mn).
Phép toán cơ bản là phép nhân. Độ phức tạp của thuật toán là O(m+n).
Phép toán cơ bản là phép trừ. Độ phức tạp của thuật toán là O(m^2n^2).
Phép toán cơ bản là phép chia. Độ phức tạp của thuật toán là O(n).
Bài 4. Các hàm sau thuộc lớp hàm nào?
Hàm bậc nhất
Hàm bậc hai
Hàm hằng
Hàm lũy thừa
Hàm số √10n^2 + 7n + 3 thuộc lớp hàm nào?
O(n2)
O(n)
O(1)
O(n3)
Hàm 2n.log(n + 2)^2 + (n + 2)^2log(n / 2) thuộc lớp hàm nào?
O(n2logn)
O(n log n)
O(n3)
O(n2)
Hàm 2n+1 + 3n - 1 thuộc lớp hàm nào?
Lớp hàm lũy thừa
Lớp hàm đa thức
Lớp hàm logarit
Lớp hàm hằng số
Hàm ⌊log2 n⌋ thuộc lớp hàm nào?
Lớp hàm logarit
Lớp hàm đa thức
Lớp hàm hằng số
Lớp hàm mũ
Chọn khẳng định đúng về đa thức bậc k, p(n) = aknk+ak−1nk−1+...+a0 , với a_k > 0:
p(n) thuộc lớp O(nk)
p(n) thuộc lớp O(nk−1)
p(n) thuộc lớp O(nk+1)
p(n) thuộc lớp O(1)
Bài 6. Tính các tổng sau đây: a. 1 + 3 + 5 + ... + 99
2500
2000
2550
2400
Bài 6. Tính các tổng sau đây: b. 2 + 4 + 6 + ... + 100
2550
2450
2600
2750
Bài 6. Tính các tổng sau đây:
c. Σi=3n+11
n - 2
n + 1
n - 1
n
Bài 6. Tính các tổng sau đây: d. Σi=3n+1i
(n+1)(n+2)/2 - 3
(n+1)(n+2)/2 - 2
(n+1)(n+2)/2 - 1
(n+1)(n+2)/2
Bài 6. Tính các tổng sau đây: e. Σi=0n−1i(i+1)
n(n-1)(n+1)/3
n(n+1)(n+2)/6
n(n-1)(n+2)/2
n(n-1)(n+1)/2
Bài 6. Tính các tổng sau đây: f. Σi=1n3i+1
32+33+...+3n+1=(3n+2−9)/2
32+33+...+3n+1 = (3n+1−3)/2
32+33+...+3n+1 = (3n+2−3)/2
32+33+...+3n+1 = (3n+1−9)/2
Bài 6. Tính các tổng sau đây: g. Σi=1nΣj=1ii×j
n(n+1)(n+2)/6
n(n+1)(2n+1)/6
n(n+1)2/4
2n2(n+1)
Bài 6. Tính các tổng sau đây: h. Σi=3n+1i(i+1)1
1/12 - 1/(n+1)(n+2)
1/6 - 1/(n+2)
1/3 - 1/(n+1)
1/9 - 1/(n+1)(n+2)
Thuật toán Mystery(n) tính giá trị nào sau đây? ALGORITHM Mystery(n) //Đầu vào: một số nguyên không âm n S ← 0 for i ← 1 to n do S ← S + i × i return S
Tổng các bình phương của các số từ 1 đến n
Tổng các số từ 1 đến n
Tích các số từ 1 đến n
Tổng các lập phương của các số từ 1 đến n
Trong thuật toán Mystery(n), phép toán cơ bản là gì?
Phép nhân i × i
Phép gán S ← 0
Phép so sánh i ≤ n
Phép cộng S + i
Đầu vào của thuật toán Secret(A[0..n-1]) là gì?
Một mảng A[0..n-1] gồm n số thực
Một số nguyên n
Một số thực duy nhất
Hai số nguyên bất kỳ
Đầu ra của thuật toán Secret(A[0..n-1]) là gì?
Hiệu giữa giá trị lớn nhất và nhỏ nhất của mảng A
Tổng các phần tử trong mảng A
Giá trị lớn nhất trong mảng A
Số lượng phần tử trong mảng A
Bài 8. Xét thuật toán sau: ALGORITHM Secret(A[0..n-1]) //Đầu vào: một mảng A[0..n-1] có n số thực minval ← A[0] maxval ← A[0] for i ← 1 to n-1 do if (A[i] < minval) then minval ← A[i] if (A[i] > maxval) then maxval ← A[i] return maxval - minval Số lần thực hiện phép toán cơ bản trong thuật toán là bao nhiêu?
2(n-1)
n
n-1
n+1
Độ phức tạp của thuật toán trên là:
O(n2)
O(n)
O(log n)
O(n!)
Có thuật toán nào khác cũng tính giá trị S = max(A) - min(A) nhanh hơn thuật toán Secret(A[0..n-1]) không?
Không, thuật toán Secret đã tối ưu về số lần so sánh.
Có, có thể dùng thuật toán khác nhanh hơn.
Có, nhưng chỉ khi mảng đã được sắp xếp.
Không, chỉ có thể tối ưu về bộ nhớ chứ không về thời gian.
Đầu vào của thuật toán Enigma(A[0..n-1, 0..n-1]) là gì?
Một ma trận A[0..n-1, 0..n-1] các số thực
Một dãy số nguyên
Một chuỗi ký tự
Một danh sách các số nguyên
Đầu ra của thuật toán Enigma(A[0..n-1, 0..n-1]) là gì?
Trả về true nếu ma trận A đối xứng qua đường chéo chính, ngược lại trả về false.
Trả về tổng các phần tử trên đường chéo chính của ma trận.
Trả về false nếu tất cả các phần tử của ma trận đều bằng nhau.
Trả về số lượng phần tử khác nhau trong ma trận.
Bài 9. Xét thuật toán sau: ALGORITHM Enigma(A[0..n-1, 0..n-1]) //Đầu vào: một ma trận A[0..n-1, 0..n-1] các số thực for i ← 0 to n-2 do for j ← i+1 to n-1 do if (A[i, j] ≠ A[j, i]) then return false return true Số lần thực hiện phép toán cơ bản của thuật toán Enigma là bao nhiêu?
n(n-1)/2
n2
n(n+1)/2
n
Độ phức tạp của thuật toán trên là:
O(n2)
O(n)
O(log n)
O(n!)
