Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11 Thực hành cấu trúc dữ liệu và giải thuật 11
Trang 1INT2203 Cấu trúc dữ liệu và giải thuật HKI, 2012-2013
Đề thi giữa kì
Thời gian làm bài: 90 phút
Câu 1 Vì sao để đánh giá thuật toán nên dùng phân tích toán học hơn phân tích thực nghiệm? Hãy đưa ra 2 đoạn chương trình ví dụ có thời gian O(1)
Câu 2 Giải thích mối quan hệ giữa f(n) và g(n) trong biểu thức f(n) = O(g(n)) Hãy đưa ra 2 đoạn chương trình ví dụ có thời gian O(n)
Câu 3 Khi áp dụng thuật toán tìm kiếm nhị phân để tìm x = 3 trên mảng a (hình dưới), ta cần bao nhiêu phép so sánh x với phần tử của a?
Câu 4 Khi áp dụng thuật toán tuyến tính trộn 2 mảng a, b tăng thành một mảng c tăng (hình dưới), ta cần bao nhiêu phép so sánh phần tử của a với phần tử của b?
Câu 5 Phân tích độ phức tạp thời gian của đoạn mã sau:
int mystery1(int n){
int sum = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
sum += i * j;
}
}
return sum;
}
Câu 6 Phân tích độ phức tạp thời gian của đoạn mã sau:
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++){
c[i][j] = 0;
for (int k = 0; k < n; k++)
c[i][j] += a[i][k] * b[k][j];
}
Câu 7 Phân tích độ phức tạp thời gian của đoạn mã sau:
int mystery2(int a[], unsigned int n)
{
int sum = 0;
int thisSum = 0;
for(int i = 0; i < n; i++){
thisSum += a[i];
if(thisSum > sum)
sum = thisSum;
if(thisSum < 0)
Trang 1/4
Trang 2INT2203 Cấu trúc dữ liệu và giải thuật HKI, 2012-2013
thisSum = 0;
}
return sum;
}
Câu 8 Cho biết a là một mảng n phần tử và swap là hàm tráo đổi giá trị 2 đối số Đoạn mã dưới đây sắp xếp mảng a theo thứ tự giảm dần:
for(int i = 0; i < n - 1; i++)
for(int j = 0; j < n - 1 - i; j++)
if(a[j] < a[j + 1]) swap(a[j], a[j + 1]);
Hãy cho biết đoạn mã trên gọi hàm swap bao nhiêu lần nếu truyền vào mảng a có a[i] = i với i = 0, …, n-1 ?
Câu 9 Mô tả ngắn gọn và so sánh các phương án cài đặt ngăn xếp nêu dưới đây:
(a) cài bằng mảng tĩnh
(b) cài bằng danh sách liên kết đơn
(c) cài bằng danh sách liên kết kép
Câu 10 Bắt đầu từ ngăn xếp rỗng, ta thực hiện xen lẫn các phép push và các phép pop trên nó Các phép push lần lượt thêm các số nguyên từ 0 đến 9 vào ngăn xếp Mỗi phép pop loại một phần tử khỏi ngăn xếp và in giá trị vừa loại ra màn hình Chuỗi output nào sau đây không thể xảy ra trên màn hình? Giải thích
(a) 4 3 2 1 0 9 8 7 6 5
(b) 4 6 8 7 5 3 2 9 0 1
(c) 2 5 6 7 4 8 9 3 1 0
(d) 4 3 2 1 0 5 6 7 8 9
(e) 1 2 3 4 5 6 9 8 7 0
(f) 0 4 6 5 3 8 1 7 2 9
(g) 1 4 7 9 8 6 5 3 0 2
(h) 2 1 4 3 6 5 8 7 9 0
Câu 11 Giả sử ta thực hiện trộn lẫn enqueue và dequeue trên một hàng đợi Ban đầu hàng đợi rỗng Các phép enqueue lần lượt thêm các số nguyên từ 0 đến 9 vào hàng đợi này Phép dequeue loại một phần tử khỏi hàng đợi và in giá trị vừa loại ra màn hình Chuỗi output nào sau đây không thể xảy
ra trên màn hình? Giải thích
(a) 0 1 2 3 4 5 6 7 8 9
(b) 4 6 8 7 5 3 2 9 0 1
(c) 2 5 6 7 4 8 9 3 1 0
(d) 4 3 2 1 0 5 6 7 8 9
Câu 12 Mô tả ngắn gọn và so sánh các phương án cài đặt hàng đợi nêu dưới đây:
(a) cài bằng mảng tĩnh vòng
(b) cài bằng danh sách liên kết đơn
(c) cài bằng danh sách liên kết kép
Câu 13 Viết biểu thức postfix cho cây biểu thức số học bên dưới Trình bày và phân tích thuật toán tính giá trị biểu thức postfix
Trang 2/4
Trang 3INT2203 Cấu trúc dữ liệu và giải thuật HKI, 2012-2013
Câu 14 Hãy vẽ cây nhị phân biểu diễn biểu thức số học postfix 1 5 12 7 4 - / * + Trình bày và phân tích thuật toán xây dựng cây biểu thức từ dạng postfix
Câu 15 Cho cây tìm kiếm nhị phân trong hình vẽ Hãy cho biết cây kết quả sau khi
(a) thêm 11 vào cây
(b) xóa gốc khỏi cây thu được ở câu a
Câu 16
(a) Bắt đầu từ cây tìm kiếm nhị phân rỗng, lần lượt thêm vào dãy khóa 16 6 2 11 20 12 Hãy vẽ cây kết quả
(b) Vẽ cây thu được ở câu a sau khi xóa gốc
Câu 17 Sử dụng cây tìm kiếm nhị phân, hãy đưa ra thuật toán sắp xếp mảng theo thứ tự khoá tăng dần, bằng cách sử dụng các phép toán insert và deleteMin
Câu 18 Giả sử tập dữ liệu được lưu giữ dưới dạng cây tìm kiếm nhị phân Bài toán tìm kiếm phạm vị được xác định như sau: Cho hai giá trị khoá k1 < k2, ta cần tìm tất cả các dữ liệu d mà k1 ≤ d.key ≤ k2 Hãy thiết kế thuật toán cho bài toán tìm kiếm phạm vi
Câu 19 Lớp ArrayStack biểu diễn ngăn xếp số nguyên cài bằng mảng cấp phát động Hãy cài đặt phương thức void push(int x); thêm x vào đỉnh ngăn xếp Chú ý cấp phát thêm bộ nhớ động khi
mảng đầy
class ArrayStack{
public:
ArrayStack(): element(NULL), capacity(0), t( -1 ){}
// Các phương thức khác của ngăn xếp
void push(int x);
private:
int * element; // con trỏ tới mảng cấp phát động
int capacity; // dung lượng mảng động
Trang 3/4
Trang 4INT2203 Cấu trúc dữ liệu và giải thuật HKI, 2012-2013
int t; // chỉ số mảng của phần tử đỉnh ngăn xếp
};
Câu 20 Lớp SList biểu diễn danh sách các số nguyên cài bằng danh sách liên kết đơn
(DSLKĐ) Mỗi phần tử của DSLKĐ có kiểu Node định nghĩa bên dưới SList có một thành viên dữ liệu duy nhất là head lưu địa chỉ phần tử đầu tiên của DSLKĐ
Hãy định nghĩa hàm thành viên appendList nối một danh sách (truyền qua tham số someList) vào
đuôi danh sách đang xét
struct Node{
int data;
Node * next;
};
class SList{
public:
SList(): head(NULL) {}
// Các phương thức khác của danh sách
void appendList(const SList & someList);
private:
Node * head; // con trỏ tới phần tử đầu tiên của DSLKĐ
};
Trang 4/4
Trang 5DE THI cAu TRUCDU LI~U VA THU~ T ToAN
Tha'igian 120phlit
ill A
Gin 1 Cho danhsaeh lien k~t yang tran (DSLKVT), mQtcan tro ngoai Ptr tro to'i mQt ph~n tlr
cua danh sach ilhu hinh ve Ptr I ~tP1Y' -7YV
l~,-,C
{ J ~ \ \' J
-I Hay khai baa c:iu tnk du' li~u (CTDL) tren.
2 Slr d~mgDSLKVT tren o~ cai o~Hhang oQ'i,hay cho bi~t o~u hang oQ'j0' oau? Ta co
th~ truy e~p to-iph~n tu' 0' o~u hang \a ph~n tli'6' ouai hang b~ng cae con tro nilO?
3 Slr d\lng DSLKVT tren o~ cai o~t ngan x~p hay cho bi~t olnh ngan x~p 0'dau? Hay
vi~t ham o~v mat oh~n tlr m6'i vaa oinh n2:anx~o.- ~ .
Can 2 Cho cay tim ki~m nhi phan (TKNP) v6'i khoa t?i cae olnh la cac s6 nguyen.
1 Dlnh co khoa nho nh~t trang ciiy TK:.IP la olnh nao?
2, Hay khai baa CTDL bi~u di~n cdy TKNP va vi~t ham tim gia trj khoa nho nh~t trong cay.
Can 3 Cho hang uu tien v6'i cac gia tri uu tien la cac s6 nguyen.Hang uu tien oUQ'cluu trong
mc'mgtheo th(r tv uu tien giam d~n
I, Hay khai bao CTDL bi~u di~n hang llll tien theo cach tren.
2 Hay vi~t ham xen mQt06i tUQ'ngm6'i co gia trj uu tien la k vaa hang uu tien.
Can 4 Cho mQtt~p du' li~u v6'i khoa la cac 56 nguyen duong T<;ipdu' li~u oUQ'eluu trong bang
bam day chuy~n.
I, Hay khai bao CTDL bang bam day chuy~n,
2 Gia Slrbang barn co co' N=5, ham barn la ham ehia I~ydU.Tlr bang barn r6ng, hay ou'a cac du' li~u vo-ikhoa 13, 25, 502 30 23, 152 va 128 VaGbang barn Dua ra hinh ve bi~u dien bang bam k€t qua.
Can 5 Cho 06 thj oinh hu'6'ngco trQng56, D6 thi co N olnh oUQ'coanh 56 tlr 0 o€n N-l, trQng56
cua cac cung la cac s6 thvc duong D6 thj oUQ'cbj~u dien bO'ima tr~n k~.
~ I, Hay khai bao CTDL bi~u dien 06 thi,
I 2 Hay vi€t ham duy~t 06 thj theo oQsau o~ tfnh t6ng oQdai cac cung
Trang 6Đề thi cuối kì cấu trúc dữ liệu và giải thuật
Học kì I, 2009-2010 Lớp k52ca, cb, cc Thời gian : 90’
Lưu ý : các thí sinh không được phép trao đổi bài
Câu 1 (1 điểm)
Hãy cho biết các phát biểu sau đúng hay sai :
a Các phần tử trong cấu trúc dữ liệu hàng đợi ưu tiên được thực hiện theo nguyên tắc vào trước
ra trước
b Độ phức tạp của hai thuật toán merge-sort và heap-sort là như nhau
c Một đồ thị vô hướng là liên thông nếu có số cạnh nhiều hơn hoặc bằng hai lần số đỉnh của đồ thị
d Giữa hai đỉnh bất kì trong cây chỉ tồn tại một đường đi duy nhât
e Tư tưởng của thuật toán duyệt là giải quyết bài toán lớn dựa vào kết quả của các bài toán nhỏ
Câu 2 (2 điểm)
Cho một mảng có n số nguyên đã được sắp xếp theo thứ tự không giảm hãy mô tả thuật toán dưới dạng mã giả để đếm số lần xuất hiện của số nguyên k trong mảng đó với độ phức tạp tốt nhất có thể được tính độ phức tạp của thuật toán
Câu 3 (2 điểm)
Hãy mô tả một thuật toán đệ quy dưới dạng mã giả để tìm số phần tử bằng giá trị x cho trước trong một dãy danh sách liên kết đơn
Câu 4 (1 điểm)
a Độ cao nhỏ nhất của cây nhị phân có 7 đỉnh là bao nhiêu ? Vẽ hình minh họa
b Hãy mô tả thuật toán duyệt Postorder cho một câu nhị phân dưới dạng mã giả
Câu 5 (1 điểm)
Cho dãy số : 9, 1, 2, 8, 5
a Hãy vẽ một cấu trúc dữ liệu heap chứa dãy số trên
b Hãy vẽ một câu trúc dữ liệu cây nhị phân tìm kiếm chứa dãy trên
Câu 6 (1 điểm)
Hãy viết mã giả mô tả thuật toán kiểm tra một đồ thị vô hướng G có liên thông hay không Hãy cho biết độ phức tạp của thuật toán dưới dạng O() ?
Câu 7 (2 điểm)
Cho một mảng A = {a1, a2, …., an} chứa n số nguyên dương Một cách chọn một số phần tử trong A (mỗi phần tử được chọn không quá một lần) có tổng bằng một giá trị k cho trước được gọi là thỏa mãn điều kiện k Hãy mô tả thuật toán dưới dạng mã giả điếm số cách chọn thỏa mãn điều kiện k cho biết độ phức tạp của thuật toán đó
Câu 8 (1 điểm)
Trang 7Cho một dãy số A = {a1, a2, …., an} chứa n (n < 100) số nguyên dương Có giá trị nhỏ hơn 10 Hãy
mô tả thuật toán quy hoạch động để kiểm tra xem có tồn tại một cách chia dãy A thành 3 dãy con thỏa mãn điều kiện tổng giá trị các phần tử trong các dãy con là bằng nhau
Ví dụ:
A = {4, 3, 2, 8, 3, 4}
A có thể được chia thành ba dãy con có tổng các phần tử là 8 như sau:
{4, 4} {3, 2, 3} {8}
Trang 8Đề thi cuối kì Cấu trúc dữ liệu và giải thuật
Học kì II, 2009-2010 Lớp K53CB, K53CC Thời gian: 90’
Câu 1 (1 điểm):
Hãy cho biết các phát biểu sau đúng hay sai(mỗi lựa chọn không chính xác được cộng 0.2, không chính xác bị trừ 0.2, không trả lời thì không có điểm cho phần tương ứng Lưu ý điểm số nhỏ nhất cho cả câu 1
là 0, nghĩa là không có điểm âm cho câu 1):
a Các phần tử trong cấu trúc dữ liệu Stack được thực hiện theo nguyên tắc vào trước ra trước(first in first out)
b Độ phức tạp(complexity) của hai thuật toán sắp xếp nổi bọt và merge-sort là như nhau
c Thuật toán Dijkstra cho phép tìm đường đi ngắn ngất từ một đỉnh đến tất cả các đỉnh còn lại của đồ thị
d Đỉnh gốc sẽ được thăm đầu tiên nếu chúng ta tiến hành duyệt theo thứ tự sau(post order) trên một cây
e Một đồ thị đơn vô hướng, liên thông có số cạnh nhiều hơn số đỉnh
Câu 2 (1.5 điểm): Hãy mô tả thuật toán đệ quy(recursive) dưới dạng pseudo code để tìm số phần tử có giá trị bằng phần tử đầu tiên trong một dãy danh sách liên kết đơn(singly-linked list)
Câu 3 (1 điểm): Vẽ cây nhị phân tìm kiếm cân bằng cho dãy sau: 1 9 6 2 4 7
Câu 4 (2 điểm): Mô tả thuật toán kiểm tra xem 1 phần tử có giá trị bằng k có nằm trong cây nhị phân tìm kiếm hay không bằng pseudo-code
Câu 5 (1 điểm): Hyax mô tả thuật toán duyệt theo chiều sâu cho một đồ thị đơn vô hướng dưới dạng pseudo-code
Câu 6 (2 điểm): Hãy mô tả thuật toán liệt kê tất cả các hoán vị của n phần tử dưới dạng pseudo-code Hãy cho biết độ phức tạp của thuật toán dưới dạng O()
Câu 7 (1.5 điểm): Trình bày ngắn gọn phương pháp giải quyết va chạm trong cấu trúc dữ liệu bảng băm (Hash table)
Trang 9ĐẠI HỌC QUỐC GIA HÀ NỘI ĐỀ THI MÔN: Cấu trúc dữ liệu và giải thuật
Học kỳ I, năm học 2012, 2013
Thời gian làm bài: 120 phút
Đề thì gồm 2 trang Không sử dụng tài liệu hay thiết bị điện tử khi làm bài
Câu 1 Các phát biểu dưới đây đúng hay sai? Hãy sửa hoặc bổ sung ý nếu bạn cho là sai.
a Chiểu cao của cây tìm kiếm nhị phân n đỉnh là O(logn)
b Với bảng băm giải quyết va chạm bằng thăm dò tuyến tính, phép remove(k) có thể thực hiện đơn giản bằng cách xóa đi giá trị ở ô tương ứng, coi như chưa bao giờ thực hiện insert vào ô đó
c Với bảng băm giải quyết va chạm bằng thăm dò bình phương, khi bảng chưa đầy thì phép insert luôn thực hiện được
d Biểu diễn đồ thị bằng ma trận kề tốt hơn biểu diễn bằng danh sách kề
e Dù biểu diễn đồ thị bằng ma trận kề hay danh sách kề thì thời gian chạy của thuật toán đi qua đồ thị G = (V, E) theo bề rộng đều là O(|V| + |E|)
f Luôn thực hiện được sắp xếp topo trên đồ thị có hướng không chu trình
g Với min heap, các phép toán findMin, findMax, deleteMin và insert đều thực hiện được trong thời gian O(logn)
h Thuật toán thiết kế theo kỹ thuật tham ăn cho lời giải tối ưu
Với từng phương pháp giải quyết va chạm nêu dưới, một bảng băm cỡ n có thể lưu tối đa bao nhiêu khóa phân biệt?
a Thăm dò tuyến tính
b Thăm dò bình phương
c Tạo dây chuyền
Câu 3 Max heap là cây thứ tự bộ phận có tính chất khóa cha lớn hơn khóa con Hãy viết giả mã thuật
toán tuyến tính xây dựng max heap từ một dãy n phần tử Vận dụng thuật toán vừa nêu cho dãy đầu vào (2203, 1, 3, 14, 16, 25, 12, 2012), hãy vẽ kết quả từng bước thực hiện
Câu 4 Câu này hỏi về thuật toán sắp xếp nhanh lấy chốt là phần tử đầu, nhằm sắp giảm dần một dãy số
thực:
a) Hãy viết mã C++ của thuật toán
b) Với đầu vào nào thì xảy ra thời gian chạy xấu nhất Cho ví dụ
c) Phân tích độ phức tạp thời gian trong trường hợp xấu nhất
Câu 5 Xét 6 thuật toán sắp xếp: 1-sắp xếp xen vào, 2-sắp xếp lựa chọn, 3-sắp xếp nổi bọt, 4-sắp xếp
nhanh (lấy chốt là phần tử đầu), 5-sắp xếp trộn, 6-sắp xếp sử dụng heap và tính chất: Nếu đầu vào là
Trang 10một danh sách đã sắp đúng thứ tự thì các bước của thuật toán không thực hiện bất kì biến đổi nào trên danh sách.
Thuật toán nào có tính chất trên? Thuật toán nào không có tính chất trên? Giải thích
Câu 6 Xét 6 thuật toán sắp xếp ở câu trước và thuật toán sắp xếp cơ số Theo bạn, thuật toán nào tốt
nhất cho mỗi mô tả sắp xếp bộ dữ liệu dưới đây? Giải thích
a) Mảng có 32000000 phần tử nguyên trong khoảng từ 0 đến 32000000
b) Sắp xếp độc lập 1000000 mảng, mỗi mảng có 5 phần tử
c) Sắp xếp mảng 1000000 phần tử với thời gian chạy xấu nhất là O(nlogn)
Câu 7 Bài toán tìm xâu con chung dài nhất của một tập S các xâu được ứng dụng nhiều trong tin sinh
học Xâu con chung của 2 xâu là chuỗi các ký tự liền nhau có mặt trong cả 2 xâu Ví dụ tập S gồm 2 xâu là “HELLO” và “ALOHA” thì xâu con chung dài nhất là “LO”
a) Hãy viết giả mã thuật toán quy hoạch động tìm xâu con chung dài nhất của 2 xâu
b) Vẽ bảng quy hoạch động cho 2 xâu ví dụ nói trên
Câu 8 Đồ thị có hướng có trọng số G được cho trong danh sách kề ở hình bên dưới Mỗi nút trong
danh sách liên kết có 3 thành phần: số hiệu đỉnh, trọng số cung và địa chỉ nút tiếp theo
Hãy
a) Vẽ đồ thị G
b) Cho biết G liên thông mạnh, liên thông yếu hay không liên thông? Giải thích ngắn gọn
c) Cho biết 1 kết quả của thuật toán Tarjan sắp xếp topo trên G và các bước dẫn tới kết quả này d) Cho biết kết quả và các bước thực hiện thuật toán Dijkstra tìm độ dài đường đi ngắn nhất từ đỉnh 0 tới các đỉnh còn lại
e) Cho biết kết quả và các bước thực hiện thuật toán Prim tìm cây khung nhỏ nhất của đồ thị vô hướng nền của G
Trang 11Trang 1
ĐẠI HỌC QUỐC GIA HÀ NỘI ĐỀ THI MÔN: Cấu trúc dữ liệu và giải thuật TRƯỜNG ĐẠI HỌC CÔNG NGHỆ L ớp môn học: INT2203 1,3
Học kỳ I, Năm học 2012-2013
Th ời gian làm bài: 120 phút
Đề thi và đáp án gồm 8 trang Không s ử dụng tài liệu hay thiết bị điện tử khi làm bài
Câu 1 Các phát biểu dưới đây đúng hay sai? Hãy sửa hoặc bổ sung ý nếu bạn cho là sai
a Chiều cao của cây tìm kiếm nhị phân n đỉnh là O(logn)
b Với bảng băm giải quyết va chạm bằng thăm dò tuyến tính, phép remove(k) có thể thực hiện đơn giản bằng cách xóa đi giá trị ở ô tương ứng, coi như chưa bao giờ thực hiện insert vào ô
đó
c Với bảng băm giải quyết va chạm bằng thăm dò bình phương, khi bảng chưa đầy thì phép insert luôn thực hiện được
d Biểu diễn đồ thị bằng ma trận kề tốt hơn biểu diễn bằng danh sách kề
e Dù biểu diễn đồ thị bằng ma trận kề hay bằng danh sách kề thì thời gian chạy của thuật toán
đi qua đồ thị G=(V,E) theo bề rộng đều là O(|V|+|E|)
f Luôn thực hiện được sắp xếp topo trên đồ thị có hướng không chu trình
g Với min heap, các phép toán findMin, findMax, deleteMin và insert đều thực hiện được trong
thời gian O(logn)
h Thuật toán thiết kế theo kỹ thuật tham ăn cho lời giải tối ưu
Đáp án
Câu 2 Xét việc lưu tập hợp U các phần tử có giá trị khóa thuộc tập {0, 1, …, n2
-1} trong bảng băm Với từng phương pháp giải quyết va chạm nêu dưới, một bảng băm cỡ n có thể lưu tối đa bao nhiêu khóa phân biệt?