Tải bản đầy đủ (.pdf) (2 trang)

CTDL-GT - cuoi ki he K55 de 1 - NgDuyHiep

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (399.12 KB, 2 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG
BỘ MƠN KHOA HỌC MÁY TÍNH

Mã đề

ĐH 20123 - 01

***

Bài 1. (1 đ) Khi khám bệnh trong bệnh viện mọi người phải khai báo thông tin cá nhân (họ tên, địa chỉ, điện
thoại và CMND), xếp hàng lấy số theo đúng thứ tự (số lượng số phát ra trong một ngày không quá 1000).
Để lưu trữ và quản lý các thông tin người đến khám chúng ta có thể cài đặt hàng đợi dùng:
• Mảng cấp phát động: Khai báo mảng ban đầu với kích thước nhỏ (khoảng 10 phần tử), nếu số
lượng vượt quá kích thước mảng hiện tại thì ta sẽ khai báo một mảng mới với kích thước lớn
hơn gấp 2, và copy tồn bộ các phần tử của mảng cũ sang mảng mới.
• Danh sách liên kết đơn: mỗi phần tử gồm 2 phần, phần data lưu trữ thông tin bệnh nhân, và
phần con trỏ để trở sang phần tử kế tiếp.
Biết kích thước thông tin cá nhân của một người (phần tử của hàng đợi) không quá 500 Byte.
Hãy đánh giá hai phương án trên theo:




Bộ nhớ sử dụng
Thời gian thêm một phần tử
Tìm kiếm một phần tử

Có phương án nào tốt hơn cả hai phương án
trên không? (+0.5)
Bài 2. (1 đ) Đánh giá thời gian thực hiện của


thuật tốn sau
Trong đó A, B là hai mảng chứa các số nguyên
không trùng nhau.
Hãy cho biết hàm trên thực hiện cơng việc gì
và đánh giá thời gian thực hiện của hàm theo
O-lớn.

int calsum(int A[], int n, int B[], int m)
{
int sum=0, i=0, j=0;
while(i{
if(A[i]==B[j]) sum = sum+ A[i];
else sum = sum+ A[i] + B[j];
i++;
j++
}
if(iif(jreturn sum
}

Bài 3. (1 đ) Giả sử chúng ta có 2 file chứa các số số nguyên bất kỳ không trùng nhau, và ta cần gộp hai file
này lại để tạo thành file chứa các số nguyên không trùng nhau trong cả hai file.
Hãy đưa ra phương án của bạn để thực hiện trong các trường hợp sau:
• Kích thước của 2 file là nhỏ (có thể load hết vào bộ nhớ trong)
• Kích thước của hai file lớn, khơng thể load đồng thời toàn bộ hai file
vào bộ nhớ trong.
Đánh giá thời gian thực hiện của các phương án bạn đề xuất trong cả hai
trường hợp trên.

Bài 4. STACK (1 đ)
a. Chuyển biếu thức sau từ dạng trung tố sang dạng hậu tố
Sinh viên được sử dụng tài liệu

Trang 1 / 2


𝑐
2

�𝑎 + 𝑏 − � + √3 − 𝑐

Biểu thức tương đương là (a+b-c/2) + √(3-c)

b. Vẽ cây biểu thức biểu diễn cho biểu thức ở trên
c. (*) cho a =3, b = 2 và c = -1 Hãy định giá biểu thức hậu tố thu được ở phần a (+0.5)
Bài 5. Cho cây nhị phân tìm kiếm ban đầu như hình trang 1 (1.5 đ)
a. Hãy đưa ra các dãy ban đầu có thể tạo ra cây nhị phân tìm kiếm đó khi chèn theo thứ tự vào cây nhị
phân rỗng
b. Thêm lần lượt 8, 18, 17, 15, 9 và cây nhị phân
tìm kiếm ở trên, hãy vẽ cây kết quả thu được
c. Xóa 19 từ cây kết quả trong phần b, hãy vẽ
cây kết quả thu được
Bài 6. Đồ thị (1.5 đ)
a. Biểu diễn đồ thị trên dùng danh sách kề
b. Duyệt DFS từ D và đưa ra các loại cạnh trên
đồ thị
c. Đưa ra đường đi ngắn nhất từ A tới F
d. (**) đưa ra cây khung có trọng số nhỏ nhất
trên đồ thị (+0.5)

Bài 7. (1 đ) Viết hàm tính và trả về tổng của các
nút trên cây nhị phân tìm kiếm ở mức thứ k.
Đánh giá thời gian thực hiện theo n và k (n là số lượng
nút trên cây)
VD. Với cây nhị phân ở hình bên thì
k = 2 hàm trả về 16 + 36 + 78 = 130
k = 3 hàm trả về 0
Bài 8. (1 đ) Bạn có một danh sách Stopword khoảng 600 từ, và cần thực hiện lặp đi lặp lại thao tác kiểm tra
một từ có phải là stopword hay không. Hãy mô tả cấu trúc dữ liệu và thuật tốn sử dụng để thực hiện
cơng việc đó một cách nhanh nhất.
Bài 9. (1 đ) Bạn có một văn bản và cần lưu trữ, thống kê tần số xuất hiện của các từ trong văn bản đó. Hãy
mơ tả cấu trúc dữ liệu bạn dùng và thuật toán để thống kê các từ trong văn bản.
Đánh giá hiệu quả của phương pháp bạn đề xuất về thời gian thực hiện và bộ nhớ sử dụng.
Bài 10. (1 đ) Trong BTL của bạn, bạn tổ chức file index ra sao để phục vụ cho việc lưu trữ các từ trong văn
bản và tìm kiếm.
• Đánh giá thời gian bạn cần để tìm kiếm xem một từ xuất hiện trong những văn bản nào?
• Làm thế nào để bạn có thể mở rộng (thêm/xóa bài viết) file index hiện tại mà khơng cần phải
chạy lại thuật tốn để sinh lại file index này?

Chú ý: phần (*) và (**) chỉ dành riêng cho các bạn khơng làm BTL, các bạn có làm BTL sẽ
khơng được tính điểm nếu làm phần này
Sinh viên được sử dụng tài liệu

Trang 2 / 2



×