NEW
Font size
WorksheetsBài kiểm tra số 2
Total questions: 65
Worksheet time: 33mins
Mối quan hệ giữa cấu trúc dữ liệu và giải thuật có thể minh họa bằng đẳng thức:
Cấu trúc dữ liệu + Giải thuật = Chương trình
Cấu trúc dữ liệu + Chương trình = Giải thuật
Chương trình + Giải thuật = Cấu trúc dữ liệu
Cấu trúc dữ liệu = Chương trình
Để đánh giá một cấu trúc dữ liệu ta thường dựa vào một số tiêu chí
Cấu trúc dữ liệu phải tiết kiệm tài nguyên (bộ nhớ trong),
Cấu trúc dữ liệu phải phản ảnh đúng thực tế của bài toán,
Cấu trúc dữ liệu phải dễ dàng trong việc thao tác dữ liệu.
Cả a, b, c đều đúng
Để đánh giá giải thuật ta sử dụng khái niệm:
Quy tắc cộng, quy tắc nhân và quy tắc chung
Phương trình đệ quy, nghiệm của phương trình đệ quy
Độ phức tạp và ký hiệu ô lớn
Thời gian thực hiện của một chuỗi tuần tự các lệnh được xác định bằng:
Qui tắc cộng
Qui tắc trừ
Qui tắc nhân
Tất cả đều đúng
Trong qui tắc tổng quát, thời gian thực hiện của mỗi lệnh gán, scanf, printf là:
C(0)
C(1)
O(0)
O(1)
Theo qui tắc cộng, nếu T1(n) và T2(n) là thời gian thực hiện của hai đoạn chương trình P1 và P2; và T1(n) = O(f(n)), T2(n) = O(g(n)) thì thời gian thực hiện của đoạn hai chương trình đó nối tiếp nhau là:
T(n) = O(min(f(n),g(n)))
T(n) = O(max(f(n),g(n)))
T(n) = O(f(n).g(n))
T(n) = max(O(f(n)), O(g(n)))
Có thể tính độ phức tạp của một giải thuật theo nguyên tắc:
Qui tắc cộng
Qui tắc nhân
Qui tắc tổng quát để phân tích một chương trình
Tất cả đều đúng
Xác định thời gian thực hiện của chương trình là:
A. Xác định các bước thực hiện của giải thuật
B. Xác định sai sót trong kết quả của giải thuật
C. Xác định độ phức tạp của giải thuật.
D. Tất cả đều đúng
Khi nói đến độ phức tạp của giải thuật là ta muốn nói đến
Kết quả thu được sau khi thực hiện của chương trình
Hiệu quả của thời gian thực hiện của chương trình
Các bước tính toán trong quá trình thực hiện chương trình
Tất cả đều đúng
Khi nói đến độ phức tạp của giải thuật là ta muốn nói đến
Hàm thể hiện độ phức tạp có dạng thường gặp là:
log2n, n, nlog2n
n2 , n3
2n, 3n , n! , nn
Tất cả đều đúng
Trong qui tắc nhân, Nếu T1(n) và T2(n) là thời gian thực hiện của hai đoạn chương trình P1và P2 và T1(n) = O(f(n)), T2(n) = O(g(n)) thì thời gian thực hiện của hai đoạn chương trình đó lồng nhau là:
T(n)=O(min(f(n),g(n)))
T(n)=O(max(f(n),g(n)))
T(n) = O(f(n).g(n))
T(n2) = O(f(n).g(n))
Đối với các chương trình gọi chương trình con, thì tính độ phức tạp theo nguyên tắc:
Từ ngoài vào
Từ trong ra
Không có nguyên tắc nào
Tùy thuộc vào độ phức tạp mà lựa chọn cách tính
Đối với các chương trình không gọi chương trình con, thì dùng cách nào để phân tích, tính độ phức tạp:
Quy tắc cộng, quy tắc nhân và quy tắc chung
Phương trình đệ quy, nghiệm của phương trình đệ quy
Độ phức tạp và ký hiệu ô lớn
Phương pháp truy hồi hoặc phương pháp đoán nghiệm.
Lệnh gán x:=15 tốn một hằng thời gian hay O(1), Lệnh đọc dữ liệu READ(x) tốn một hằng thời gian hay O(1).Vậy thời gian thực hiện cả hai lệnh trên nối tiếp nhau là:
O(max(1,1))=O(1)
O(max(0,0))=O(1)
O(min(1,1))=O(1)
O(min(0,0))=O(1)
Trong giải thuật, Ta nói rằng hàm không âm T(n) có tỷ suất tăng (growth rate) f(n) nếu tồn tại các hằng số C và N0 sao cho :
T(n) ≤ Cf(n) với mọi n ≥ N0
T(n) ≥ Cf(n) với mọi n ≥ N0
T(n) ≤ Cf(n) với mọi n ≤ N0
T(n) ≥ Cf(n) với mọi n ≥ N0
Giả sử ta có hai giải thuật P1 và P2 với thời gian thực hiện tương ứng là T1(n) = 100n2 (với tỷ suất tăng là n2) và T2(n) = 5n3 (với tỷ suất tăng là n3 ) . Với n > 20 , giải thuật nào sẽ thực hiện nhanh hơn?
Hai giải thuật P1 và P2 có thời gian thực hiện bằng nhau tương ứng (T2 = T1)
Giải thuật P1 có thời gian thực hiện nhanh hơn giải thuật P2 (T1)
Giải thuật P2 có thời gian thực hiện nhanh hơn giải thuật P1 (T2)
Câu trả lời phụ thuộc vào kích thước dữ liệu vào
Giả sử ta có hai giải thuật P1 và P2 với thời gian thực hiện tương ứng là T1(n) = 100n2 (với tỷ suất tăng là n2) và T2(n) = 5n3 (với tỷ suất tăng là n3 ) . Với n < 20 , giải thuật nào sẽ thực hiện nhanh hơn?
Hai giải thuật P1 và P2 có thời gian thực hiện bằng nhau tương ứng (T2 = T1)
Giải thuật P1 có thời gian thực hiện nhanh hơn giải thuật P2 (T1)
Giải thuật P2 có thời gian thực hiện nhanh hơn giải thuật P1 (T2)
Câu trả lời phụ thuộc vào kích thước dữ liệu vào
Chọn phát biểu đúng trong các phát biểu dưới đây: bằng cách chạy thử 1 thuật toán với 1 bộ dữ liệu, ta có thể:
Khẳng định thuật toán đúng nếu nó cho kết quả đúng
Khẳng định thuật toán sai nếu cho kết quả sai
Khẳng định thuật toán tốt nếu cho kết quả nhanh
Khẳng định thuật toán hiệu quả nếu cho kết quả đúng
Mục đích của việc sắp xếp là:
Sử dụng khả năng truy nhập ngẫu nhiên của bộ nhớ để truy nhập được thực hiện nhanh
Tổ chức lại các mẩu tin sao cho các khóa của chúng được sắp thứ tự tương ứng với quy luật sắp xếp
Tìm kiếm một đối tượng trong một danh sách các đối tượng bằng giải thuật tìm kiếm nhị phân nhanh chóng
Tất cả đều đúng
Nhân tố nào là nhân tố chính ảnh hưởng đến thời gian thực hiện của một giải thuật?
Máy tính
Kiểu lệnh được sử dụng
Chương trình dịch
Kích thước của dữ liệu đầu vào
Để đánh giá một thuật toán ta thường dựa vào một số tiêu chí
Tính hiệu quả
Tính hữu hạn
Tính đúng
cả a,b,c đều đúng
Để lựa chọn một giải thuật tốt, ta sẽ căn cứ vào tiêu
Giải thuật đúng đắn.
Giải thuật đơn giản.
Giải thuật thực hiện nhanh.
Tất cả đều đúng
Để kiểm tra tính đúng đắn của giải thuật chúng ta có thể
Cài đặt giải thuật đó và cho thực hiện trên máy với một số bộ dữ liệu mẫu
Đo lường thời gian thực hiện của hoạt động trên một máy tính xác định hợp được chọn lọc các dữ liệu vào.
Cài đặt giải thuật đó và cho thực hiện trên máy với một số bộ dữ liệu mẫu rồi lấy kết quả thu được so sánh với kết quả đã biết
Xác định bởi số các lệnh được thực hiện trong một máy tính lý tưởng
Thời gian thực hiện chương trình là
Một hàm của kích thước dữ liệu vào, ký hiệu T(n) trong đó n là kích thước (độ lớn) của dữ liệu vào.
Một hàm của độ dài dữ liệu vào, ký hiệu N(x) trong đó x là độ dài của dữ liệu vào.
Thời gian ngắn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước n.
Thời gian thực hiện chương trình trong trường hợp nhanh nhất trên dữ liệu vào có kích thước n
Ðơn vị đo thời gian thực hiện là:
Đơn vị đo thời gian bình thường giờ, phút ,giây...
Không phải là đơn vị đo thời gian bình thường như giờ, phút, giây....
Được xác định bởi thời gian được thực hiện trong một máy tính lý tưởng
Tất cả đều sai
Thường ta coi T(n) là thời gian thực hiện chương trình trong trường hợp xấu nhất trên dữ liệu vào có kích thước n, tức T(n) là:
Thời gian nhỏ nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước T
Thời gian nhỏ nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước n
Thời gian lớn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước n.
Thời gian lớn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước T
Trong bài toàn sắp xếp, sắp xếp ngoài là:
Sự sắp xếp dữ liệu được tổ chức trong bộ nhớ trong của máy tính
Là sự sắp xếp được sử dụng khi số lượng đối tượng cần sắp xếp lớn không thể lưu trữ trong bộ nhớ trong mà phải lưu trữ trên bộ nhớ ngoài
Là sự sắp xếp dữ liệu được tổ chức sắp xếp dữ liệu được lưu trữ trong các tập tin
Tất cả đều sai
Trong bài toàn sắp xếp, sắp xếp trong là:
Sự sắp xếp dữ liệu được tổ chức trong bộ nhớ trong của máy tính
Là sự sắp xếp được sử dụng khi số lượng đối tượng cần sắp xếp lớn không thể lưu trữ trong bộ nhớ trong mà phải lưu trữ trên bộ nhớ ngoài
Là sự sắp xếp dữ liệu được tổ chức sắp xếp dữ liệu được lưu trữ trong các tập tin
Tất cả đều sai
Trong giải thuật QuickSort, các bước để tiến hành sắp xếp mảng a[i]..a[j] là:
1. Xác định chốt
2. Phân hoạch mảng đã cho thành các mảng con a[i]..a[k-1] , a[k] và a[k+1]..a[j] sao cho a[i], .., a[k-1] < a[k] và a[k+1], .., a[j] >a[k] .
3. Sắp xếp mảng a[i]..a[k-1] ( Đệ quy )
4. Sắp xếp mảng a[k+1]..a[j] (Ðệ quy)
1. Phân hoạch mảng đã cho thành hai mảng con a[i]..a[k-1] và a[k]..a[j].
2. Xác định chốt
3. Sắp xếp mảng a[i]..a[k-1] ( Đệ quy )
4. Sắp xếp mảng a[k]..a[j] (Ðệ quy)
1. Phân hoạch mảng đã cho thành hai mảng con
2. Sắp xếp mảng a[i]..a[k-1] ( Đệ quy )
3. Sắp xếp mảng a[k]..a[j] (Ðệ quy)
4. Xác định chốt
Tất cả đều sai
Chọn phát biểu sai trong các phát biểu sau:
Thuật toán tìm kiếm nhị phân áp dụng được trên dãy sắp xếp.
Thuật toán tìm kiếm nhị phân áp dụng được trên dãy sắp xếp tăng.
Thuật toán tìm kiếm nhị phân áp dụng được trên dãy sắp xếp giảm.
Thuật toán tìm kiếm nhị phân chỉ áp dụng được trên dãy tăng.
. Cho đoạn mã chương trình sau:
for i := 1 to n - 1 do
begin
i. m := i;
ii. for j := i + 1 to n do
if K[j] < K[m] then m := j;
iii. if m <> i then
Begin
X := K[i];
K[i] := K[m];
K[m] := X;
End;
end;
Sắp xếp dãy khóa theo thứ tự tăng dần bằng phương pháp lựa chọn.
Sắp xếp dãy khóa theo thứ tự giảm dần bằng phương pháp lựa chọn.
Sắp xếp dãy khóa theo thứ tự tăng dần bằng phương pháp thêm dần.
Sắp xếp dãy khóa theo thứ tự giảm dần bằng phương pháp thêm dần.
Cho đoạn chương trình sau
void main()
{ int a[50], n, i, k;
k = a[0];
for(i=0;i<n;i++)
if(a[i]>k) k=a[i];
}
Chọn phát biểu đúng trong các phát biểu sau:
a[k] mang giá trị lớn nhất trong mảng
a[k] mang giá trị nhỏ nhất trong mảng
k mang giá trị lớn nhất trong mảng
k mang giá trị nhỏ nhất trong mảng
Đoạn mã giả dưới đây mô tả thuật toán gì?
1. k[0] := - ¥;
2. for i := 2 to n do
begin
X := k[i]; j := i-1;
while x < k[j] do
begin
k[j+1] := k[j];
j := j-1;
end;
k[j+1] := X;
end;
3. return
Sắp xếp dãy khóa theo thứ tự giảm dần bằng phương pháp lựa chọn.
Sắp xếp dãy khóa theo thứ tự tăng dần bằng phương pháp lựa chọn
Sắp xếp dãy khóa theo thứ tự giảm dần bằng phương pháp thêm dần.
Sắp xếp dãy khóa theo thứ tự tăng dần bằng phương pháp thêm dần
Đoạn mã giả dưới đây mô tả thuật toán gì?
1. i:=1; K[n +1] := X;
2. while K[i] <> X do i := i+1;
3. if i = n +1 then return (0)
else return (i);
Tìm kiếm nhị phân phần tử có giá trị X
Tìm phần tử nhỏ nhất của mảng
Tìm kiếm tuyến tính phần tử có giá trị X
Tìm phần tử lớn nhất của mảng
Giải thuật sắp xếp kiểu nổi bọt
Procedure Bubble_sort(k, n)
{1} for i := 1 to n-1 do
{2} for j := n downto i+1 do
{3} if k[j] < k[j-1] then
sw(k[j], k[j-1]);
Thủ tục sw thực hiện nhiệm vụ gì?
Tìm min(k[j], k[j-1])
Tìm max(k[j], k[j-1])
Đổi chỗ k[j], k[j-1]
Không có phương án nào đúng.
Trong giải thuật sắp xếp Quicksort, phần tử chốt tốt nhất là:
Phần tử đầu tiên trong dãy.
Phần tử cuối cùng trong dãy.
Phần tử ở giữa dãy.
Phần tử trung vị của dãy.
Đoạn mã giả dưới đây mô tả thuật toán gì?
1. l :=1;r :=n;
2. while l r do
begin
m:=[(l+r)/2];
if X < K[m] then r := m - 1
else if X > K[m] then l := m+1
else return (m);
end;
3.return (0);
Tìm kiếm nhị phân phần tử có giá trị X
Tìm phần tử nhỏ nhất của mảng
Tìm kiếm tuyến tính phần tử có giá trị X
Tìm phần tử lớn nhất của mảng
Phép “hòa nhập hai đường” chỉ có thể áp dụng cho 2 dãy con thỏa mãn tính chất:
Đều là dãy tăng dần.
Đều là dãy giảm dần.
Hai dãy đã được sắp xếp
Hai dãy bất kỳ.
Cấu trúc dữ liệu nào tương ứng với LIFO (Last In First Out)
Đều là dãy tăng dần.
Đều là dãy giảm dần.
Hai dãy đã được sắp xếp
Hai dãy bất kỳ.
Cấu trúc dữ liệu nào tương ứng với LIFO (Last In First Out)
Queue
Linked List
Tree
Stack
Cấu trúc dữ liệu nào tương ứng nguyên tắc làm việc FIFO (First In First Out)
Queue
Linked List
Tree
Stack
Thao tác nào dưới đây thực hiện trên hàng đợi (Queue):
Thêm phần tử vào lối sau
Loại bỏ phần tử ở lối sau
Thêm phần tử vào lối trước
Thêm và loại bỏ phần tử tại vị trí bất kỳ
Thao tác nào dưới đây thực hiện trên ngăn xếp (Stack):
Phép thêm, bớt phần tử chỉ thực hiện ở một đầu.
Loại bỏ phần tử ở lối sau, thêm phần tử ở lối trước
Thêm phần tử vào lối sau, loại phần tử ở lối trước
Thêm và loại bỏ phần tử tại vị trí bất kỳ
Chọn định nghĩa đúng nhất về hàng đợi (Queue):
Hàng đợi còn được gọi là danh sách FILO và cấu trúc dữ liệu này còn được gọi cấu trúc FILO (First In Last Out)
Hàng đợi là một danh sách mà trong đó thao tác thêm 1 phần tử vào trong danh sách được thực hiện 1 đầu này và lấy 1 phần tử trong danh sách lại thực hiện bởi đầu kia.
Hàng đợi là một danh sách mà trong đó thao tác thêm 1 phần tử hay hủy một phần tử trong danh sách được thực hiện 1 đầu.
Hàng đợi phải là một danh sách liên kết đơn.
Dấu hiệu nào dưới đây cho biết danh sách liên kết đơn L là rỗng:
L ->left == NULL
L ->infor == NULL
L ->next == NULL
L == NULL
Định nghĩa cấu trúc dữ liệu của danh sách liên kết đơn được mô tả như sau:
struct Node
{
int Key;
Node * NextNode;
} OneNode;
Trong đó, khai báo Node * NextNode; dùng để mô tả
Con trỏ trỏ tới phần dữ liệu
Vùng liên kết quản lý địa chỉ phần tử kế tiếp
Con trỏ trỏ tới phần dữ liệu cuối của danh sách
Vùng liên kết quản lý địa chỉ phần tử kế tiếp của phần tử cuối
Định nghĩa nào là đúng với danh sách liên kết
Danh sách liên kết là cấu trúc dữ liệu dạng cây.
Danh sách liên kết là cấu trúc dữ liệu tự định nghĩa.
Danh sách liên kết là tập hợp các phần tử mà giữa chúng có một sự nối kết với nhau thông qua vùng liên kết của chúng.
Danh sách liên kết là tập hợp các phần tử mà đặt kề cận với nhau trong vùng nhớ.
Lựa chọn câu đúng nhất về danh sách liên kết đôi (Doubly Linked List)
Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với 01 phần tử khác trong danh sách.
Vùng liên kết của một phần tử trong danh sách liên đôi có 01 mối liên kết với 02 phần tử khác trong danh sách.
Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với 02 trước và sau nó trong danh sách.
Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với phần tử đầu và cuối của danh sách.
Chọn định nghĩa đúng nhất đối với cây nhị phân tìm kiếm
Cây nhị phân tìm kiếm là cây nhị phân có thành phần khóa của mọi nút lớn hơn thành phần khóa của tất cả các nút trong cây con trái của nó và nhỏ hơn thành phần khóa của tất cả các nút trong cây con phải của nó.
Cây nhị phân tìm kiếm là cây nhị phân có thành phần khóa của mọi nút nhỏ hơn thành phần khóa của tất cả các nút trong cây con trái của nó và nhỏ hơn thành phần khóa của tất cả các nút trong cây con phải của nó.
Cây nhị phân tìm kiếm là cây nhị phân có thành phần khóa của mọi nút lớn hơn thành phần khóa của tất cả các nút trong cây con trái của nó và lớn hơn thành phần khóa của tất cả các nút trong cây con phải của nó.
Cây nhị phân tìm kiếm chính là cây nhị phân
Nút có giá trị khóa lớn nhất trong cây nhị phân tìm kiếm khác rỗng là:
Nút bên phải cùng
Nút bên trái cùng
Nút gốc
Tất cả các nút
Trong phép duyệt cây nhị phân có 24 nút theo thứ tự sau, nút gốc có thứ tự:
Thứ 1
Thứ 2
Thứ 23
Thứ 24
Nút có khóa nhỏ nhất trong cây nhị phân tìm kiếm khác rỗng là:
Nút gốc
Tất cả các nút
Nút bên phải cùng
Nút bên trái cùng
Cây nhị phân khác rỗng là cây:
Mỗi nút (trừ nút lá) đều có hai nút con
Tất cả các nút đều có nút con
Mỗi nút có không quá 2 nút con
Tất cả các nút đều có nút cha
Nút lá trên cây nhị phân là nút?
Chỉ có 1 nút con duy nhất
Có không quá 2 nút con
Chỉ có con phải
Không có nút con.
Đoạn mã giả dưới đây thực hiện công việc gì?
Function F(n)
1. If n = 0 then return 1
2. Else return n + F(n-1);
Tính n!
Tính tổng n số nguyên đầu tiên.
Tính tổng n số nguyên lẻ đầu tiên.
Tính tổng n số nguyên chẵn đầu tiên
Kết quả nào đúng khi thực hiện giải thuật sau:
long lt(int n)
{
if (n==0) return 1;
else return (2*lt(n-1);
}
lt(12) = 2010
lt(12) = 1024
lt(7) = 720
lt(6) = 64
Kết quả nào đúng khi thực hiện giải thuật sau với a[]= {-3, -3, 15, -3}; n= 4; x= -3:
int FindX(int a[], int n, int x)
{int i;
for (i= n; i>= 1; i--)
if (a[i]==x) return (i);
return (-1);
}
1
2
3
4
Viết các phần tử của cây nhị phân tìm kiếm được tạo từ các nút có khóa là các số nguyên: 2, 10, 15, -5, -2, 13, -12 khi thực hiện phép duyệt cây theo thứ tự sau:
-1, -2, -5, 2, 3, 5, 10
-12, -2, -5, 2, 15, 13, 10
-12, -2, -5, 13, 15, 10, 2
-2, -12, -15, 3, 10, 5, 2
Viết các phần tử của cây nhị phân tìm kiếm được tạo từ các nút có khóa là các số nguyên: 2, 10, 15, -5, -2, 13, -12 khi thực hiện phép duyệt cây theo thứ tự trước:
2, -5, -12, -2, 10, 15, 13
-12, -5, -2, 2, 10, 13, 15
-12, -2, -5, 13, 15, 10, 2
-2, -12, -15, 3, 10, 5, 2
Hàm mô tả sắp xếp nổi bọt (Bubble Sort) trên mảng M có N phần tử
void BubbleSort(int M[], int N) [1]
{ [2]
int Temp; [3]
for (int I = 0; I < N-1; I++) [4]
………………………………….. [5]
if (M[J] < M[J-1]) [6]
{ [7]
Temp = M[J]; [8]
M[J] = M[J-1]; [9]
M[J-1] = Temp; [10]
} [11]
return; [12]
} [13]
Lệnh nào sau đây sẽ được đưa vào dòng lệnh thứ [5] của thủ tục
for (int J = N-1; J > I; J++)
for (int J = N; J < I; J--)
for (int J = N-1; J > I; J--)
for (int J = 1; J <N; J++)
Hàm bổ sung phần tử X vào Stack lưu trữ trên mảng S có n phần tử:
PUSH(S, T, X )
[1]. if T n then return;
[2]. ...............................................
[3]. S [T] := X;
[4.] return
Lệnh nào sẽ đưa vào dòng [2] của giải thuật:
T := T+1;
T := T-1;
if T < n then
if T =0 then.
Cho biểu thức trung tố Q = a + (b*c – (d/e^f)*g)*h, chuyển Q sang biểu thức dạng hậu tố ta được kết quả nào sau đây?
a b c* + d e f /^ g - h +
a b c d e f ^ / g - h +*
a b c+ d e^ f / g - h * +
a b c d e f ^ / g - h * +
Cho định nghĩa cấu trúc dữ liệu cho danh sách liên kết đơn
typedef struct Node
{
int Data;
Node * Link;
} OneNode;
typedef OneNode L, P;
Hàm dưới đây mô tả thuật toán duyệt danh sách trỏ bởi con trỏ L.
Function Duyet(L);
[1]. ..........................
[2]. while P <> NULL do
begin
<Thăm(p);>
P := Link(P);
end;
[3]. Return;
Lệnh nào sẽ đưa vào câu lệnh [1] để được giải thuật đúng.
P := 1;
P := NULL;
P := L;
P := Link(L);
Giải thuật sau đây thực hiện công việc gì?
function s(n, a)
1. if n = 1 then s := a[1]
else s := s(n-1, a)+ a[n];
2. return;
Tính tổng các phần tử trong dãy a[1], a[2], ..., a[n].
Tính tích các phần tử trong dãy a[1], a[2], ..., a[n].
Tìm phần tử lớn nhất trong dãy.
Tìm phần tử nhỏ nhất trong dãy.
. Tìm câu đúng trong các câu sau:
Việc thêm, bớt các phần tử trong danh sách đặc thuận lợi
Việc truy xuất và tìm kiếm các phần tử của mảng dễ dàng.
Kích thước mảng có thể thay đổi tùy ý.
Sử dụng mảng thuận lợi hơn sử dụng danh sách liên kết.
