WorksheetsPhân tích thiết kế thuật toán
Total questions: 78
Worksheet time: 39mins
Thuật toán tìm kiếm nhị phân có thể phân loại phương pháp nào bên dưới
Quy hoạch động
Vét cạn
Tham lam
Chia để trị
có 4 thuật toán A1, A2, A3, A4 có độ phức tạp lần lượt log(n), nlog(n), log(log(n)), n/log(n) thuật toán nào là tốt nhất
A1
A2
A3
A4
Phương pháp quay lui không thể giải quyết bài toán nào
Bài toán mạch Hamiliton
Bài toán người bán hàng
Bài toán n quân hậu
Bài toán tổng tập con
Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân
0(Nlog(N))
Log(N)
1
N
Khi chuyển biểu thức (12 - a) * (b + 9) / (d * 4) sang biểu diễn dạng hậu tố ta được biểu thức nào
/12a - b9 + d4*
12a - b9 + *d4*/
4b d9 + a12 - */
12 - a * b + 9 / d * d
Trong quy hoạch động, kỹ thuật lưu trữ các giá trị tính toán trước đó gọi là
Mapping
Saving value property
Storing value property
Memorization
kết quả chương trình sau:
Thuật toán knapsack:
100
Lỗi thực thi
180
220
Chiến lược giải quyết 1 bài toán bầng cách kết hợp các lời giải tối ưu của các bài toán khác nhau được gọi là
Quy hoạch động
Tham lam
Chia để trị
Đệ quy
Thuật toán qui lui nhanh hơn thuật toán vét cạn
Đúng
Sai
Bạn được cấp không giới hạn 3 tờ tiền có mệnh giá 5, 7, 9 số tiền nào dưới đây bạn không thể ghép được bằng các mệnh giá bên trên
50
21
13
23
Nên sử dụng chiến lược quy hoạch động để giải quyết bài toán nào sau đây
Mergersort
Tìm kiếm nhị phân
Longest common subsequence
Nếu 1 bài toán có thể chia thành các bài toán con được sử dụng lại nhiều lần, thì bài toán đó có tính chất là
Ghi nhớ
Cấu trúc con tối ưu
Tham lam
Các bài toán con gối nhau
Bạn được tặng 1 chiếc balo có thể mang theo trọng lượng 60kg, có 4 vật phẩm lần lượt có trọng lượng 20, 30 40, 70kg - giá trị 70, 80, 90, 200USD. Giá trị tối đa USD của các vật phẩm mà bạn có thể mang bằng cách sử dụng balo là
160
90
200
170
Độ phức tạp về thời gian khi áp dụng thuật toán vét cạn để giải quyết bài toán balo knapsacl là
2^n
n^3
n
n^t
Phương trình đệ quy về tối ưu thời gian tháp HN với N đĩa là
T(n) = 2T(N/2) + N
T(n) = 2T(N/2) + C
T(n) = 2T(N - 1) + N
T(n) = 2T(N - 1) + C
Có 3 loại tờ tiền với mệnh giá 1, 3, 4 tìm số cách ghép tờ tiền trên để được tổng số tiền là 7, biết rằng số tờ tiền mỗi loại ko giới hạn và thứ tự các tờ tiền không quan trọng
3
4
5
6
Phương pháp nào có thể giải quyết được bài toán balo
Vét cạn
Đệ quy
Quy hoạch động
Tất cả đều đúng
Bước đầu tiên trong giải quyết vấn đề là gì
Xác định vấn đề
Đoán lời giải
Hiểu vấn đề
Không phải đáp án trên
Lợi thế của pp đệ quy so với lặp là gì
Chiếm nhiều bộ nhớ hơn
Viết mã dài hơn
Viết mã ít hơn, dễ triển khai hơn
cần ít bộ nhớ hơn
Cho mảng arr = { 2, 5, 7, 99, 899}, giả sử key = 899. Chúng ta phải thực hiện đệ quy mấy lần để tìm được key(Tìm kiếm nhị phân)?
5
2
3
4
Một bài toán quy hoạch động có những tính chất nào
Các bài toán con gối nhau( overlapping subperoblems)
Cả cấu trúc con tối ưu và các bài toán con gối nhau
Cấu trúc con tối ưu( optimal substructure)
Cách tiếp cận tham lam
Thuật toán Kruskal thường dùng để
Tìm cây khung nhỏ nhất
Tìm đường đi ngắn nhất
Duyệt đồ thị
Tìm chu trình Euler
Lời giải đệ quy của bài toán Tháp Hà Nội là 1 ví dụ minh họa của thuật toán được thiết kế theo chiến lược nào
Quay lui (Backtracking)
Quy hoạch động (Dynamic programming)
Tham lam (Greedy algorithm)
Chia để trị (Divide an conquer)
Hai đại lượng đo chính dùng để đánh giá tính hiệu quả của 1 thuật toán là
Data and space
Complexiry and capacity
Processor and memory
Time and space
Độ phức tạp của hàm fun() là
O(n^2)
O(nLogn)
O(n)
O(nLognLogn)ynamic
Cây không gian trạng thái của bài toán quy hoạch lui được xây dựng bằng cách nào
Breadth-first search
Depth-first search
Nearest neighbour first
Twice around the tree
Khi thuật toán quay lui tìm được 1 lời giải hoàn chỉnh, nó sẽ làm gì
Không làm gì cả
Chuyển qua 1 đường đi khác
Tiếp tục tìm kiếm các lời giải khả thi khác
Quay lại gốc
Thuật toán sắp xếp nào sau đây có thể xem là sự cải tiến của thuật toán sắp xếp cây nhị phân
Heap sort
Quick sort
Selection sort
Insertion sort
Mục tiêu chính của việc sử dụng phương pháp tiếp cận từ trên xuống(top down) trong quy hoạch động đối với 1 bài toán là
Giảm cả độ phức tạp thời gian và không gian
Tăng cả độ phức tạp thời gian và không gian
Giảm độ phức tạp thời gian, tăng độ phức tạp không gian
Tăng độ phức tạp thời gian, giảm độ phức tạp không gian
Cây lựa chọn được xây dựng để triển khai thuật toán quay lui (backtracking) được gọi là
Cây không gian trạng thái (State-space tree)
Cây biểu đồ trạng thái (State-chart tree)
Cây nốt (Node tree)
Cây quay lui (Backtracking tree)
Phát biểu nào sau đây đúng về tính chất của thuật toán?
Thuật toán không cần đầu vào, chỉ cần đầu ra.
Thuật toán phải có tính dừng, tức là kết thúc sau một số hữu hạn bước.
Thuật toán không cần rõ ràng, miễn là cho ra kết quả đúng.
Thuật toán không cần tính đúng đắn.
Trong thuật toán QuickSort, cách chọn chốt (pivot) nào sau đây là hợp lý?
Luôn chọn phần tử đầu tiên làm chốt.
Chọn phần tử có giá trị trung bình trong mảng làm chốt.
Bất kỳ phần tử nào trong mảng cũng có thể được chọn làm chốt.
Chọn phần tử lớn nhất trong mảng làm chốt.
Ba giai đoạn chính của thuật toán quy hoạch động là:
Phân rã, Giải bài toán con, Tổng hợp lời giải.
Giải bài toán con, Ghi nhận kết quả, Tổng hợp lời giải.
Phân rã, Giải các bài toán con và ghi nhận lời giải, Tổng hợp lời giải.
Phân rã, Giải bài toán con, Ghi nhận kết quả.
Cho hai dãy X = <a, b, c, b, d, a, b> và Y = <b, d, c, a, b, a>. Dãy con chung dài nhất của X và Y là:
<b, c, a>
<c, a, b>
<b, c, a, a>
<b, c, b, a>
Khẳng định nào sau đây phù hợp nhất với chiến lược thiết kế tham lam?
Giải thuật thiết kế kiểu từ trên xuống (top-down).
Đưa ra quyết định tốt nhất trong hiện tại và không xem xét lại quyết định trong quá khứ.
Giải thuật thiết kế kiểu từ dưới lên (bottom-up).
Phân chia bài toán ban đầu thành các bài toán con để giải.
Độ phức tạp thời gian trung bình của thuật toán MergeSort là:
O(n)
O(n log n)
O(n²)
O(log n)
Trong bài toán cái túi 0-1, phương pháp nào sau đây thường được sử dụng để giải?
Tham lam
Quy hoạch động
Chia để trị
Nhánh và cận
Thuật toán Dijkstra dùng để giải bài toán nào?
Tìm cây bao trùm tối thiểu
Tìm đường đi ngắn nhất từ một đỉnh đến các đỉnh khác
Tô màu đồ thị
Tìm chu trình Hamilton
Thuật toán Kruskal yêu cầu đồ thị phải thỏa mãn điều kiện nào?
Đồ thị phải là có hướng
Đồ thị phải không có chu trình
Đồ thị phải liên thông và không có trọng số âm
Đồ thị có thể có trọng số âm
Thuật toán tham lam phù hợp nhất với bài toán nào sau đây?
Bài toán cái túi 0-1
Bài toán cây bao trùm tối thiểu (Kruskal)
Dãy con chung dài nhất (LCS)
Bài toán người thương gia du hành (TSP)
Giai đoạn nào sau đây không thuộc quy trình của quy hoạch động?
Xác định bài toán con
Ghi nhận kết quả của bài toán con
Phân chia bài toán thành hai phần bằng nhau
Tổng hợp lời giải từ các bài toán con
Kỹ thuật chia để trị (Divide and Conquer) được sử dụng trong thuật toán nào sau đây?
Prim
MergeSort
Knapsack
Dijkstra
Thuật toán quay lui (Backtracking) thường được sử dụng để giải bài toán nào?
Tìm đường đi ngắn nhất
Bài toán N quân hậu
Sắp xếp mảng
Tìm cây bao trùm tối thiểu
Độ phức tạp thời gian của thuật toán tìm kiếm tuyến tính (Linear Search) là:
O(n)
O(log n)
O(n²)
O(n log n)
Trong thuật toán HeapSort, cấu trúc dữ liệu nào được sử dụng chính?
Mảng
Danh sách liên kết
Heap
Đồ thị
Bài toán tô màu đồ thị (Graph Coloring) thường sử dụng kỹ thuật nào?
Tham lam
Quy hoạch động
Chia để trị
Tìm kiếm nhị phân
Thuật toán nhánh và cận (Branch and Bound) thường được sử dụng để giải bài toán nào?
Sắp xếp mảng
Bài toán người thương gia du hành (TSP)
Tìm kiếm tuyến tính
Tìm cây bao trùm tối thiểu
Độ phức tạp không gian của thuật toán Floyd-Warshall là:
O(n)
O(n²)
O(n³)
O(log n)
Tính chất nào sau đây là bắt buộc đối với một thuật toán?
Có nhiều hơn một đầu ra
Có tính dừng (kết thúc sau số bước hữu hạn)
Không cần tính đúng đắn
Chỉ cần đầu vào, không cần đầu ra
Độ phức tạp thời gian của thuật toán có vòng lặp lồng nhau với n lần lặp cho mỗi vòng là bao nhiêu?
O(n)
O(n²)
O(n log n)
O(log n)
Ký hiệu Big-O biểu thị điều gì trong phân tích thuật toán?
Giới hạn dưới của độ phức tạp
Giới hạn trên của độ phức tạp
Độ phức tạp chính xác
Độ phức tạp trung bình
Thuật toán MergeSort có độ phức tạp thời gian trung bình là bao nhiêu?
O(n)
O(n log n)
O(n²)
O(log n)
Trong thuật toán QuickSort, trường hợp xấu nhất xảy ra khi chốt (pivot) được chọn là:
Phần tử giữa của mảng
Phần tử đầu tiên hoặc cuối cùng trong mảng đã được sắp xếp
Phần tử ngẫu nhiên
Phần tử trung vị
Thuật toán tìm kiếm nhị phân (Binary Search) yêu cầu điều kiện nào sau đây?
Dữ liệu phải được sắp xếp
Dữ liệu phải là danh sách liên kết
Dữ liệu phải là đồ thị
Dữ liệu không cần sắp xếp
Thuật toán tham lam (Greedy) phù hợp nhất với bài toán nào sau đây?
Bài toán cái túi 0-1
Bài toán cây bao trùm tối thiểu (Kruskal)
Dãy con chung dài nhất (LCS)
Bài toán người thương gia du hành (TSP)
Giai đoạn nào sau đây không thuộc quy trình của quy hoạch động?
Xác định bài toán con
Ghi nhận kết quả của bài toán con
Phân chia bài toán thành hai phần bằng nhau
Tổng hợp lời giải từ các bài toán con
Kỹ thuật chia để trị (Divide and Conquer) được sử dụng trong thuật toán nào sau đây?
Prim
MergeSort
Knapsack
Dijkstra
Thuật toán quay lui (Backtracking) thường được sử dụng để giải bài toán nào?
Tìm đường đi ngắn nhất
Bài toán N quân hậu
Sắp xếp mảng
Tìm cây bao trùm tối thiểu
Thuật toán Dijkstra dùng để giải bài toán nào?
Tìm cây bao trùm tối thiểu
Tìm đường đi ngắn nhất từ một đỉnh đến các đỉnh khác
Tô màu đồ thị
Tìm chu trình Hamilton
Độ phức tạp thời gian của thuật toán Prim trong đồ thị có n đỉnh và e cạnh (sử dụng hàng đợi ưu tiên) là:
O(n²)
O(e log n)
O(n log n)
O(e + n)
Thuật toán Kruskal yêu cầu đồ thị phải thỏa mãn điều kiện nào?
Đồ thị phải là có hướng
Đồ thị phải không có chu trình
Đồ thị phải liên thông và không có trọng số âm
Đồ thị có thể có trọng số âm
Trong bài toán cái túi 0-1, phương pháp nào thường được sử dụng để giải?
Tham lam
Quy hoạch động
Chia để trị
Nhánh và cận
Cho hai dãy X = <A, B, C, A> và Y = <B, C, A, B>. Độ dài của dãy con chung dài nhất (LCS) là:
2
3
4
5
Bài toán cái túi phân đoạn (Fractional Knapsack) thường được giải bằng kỹ thuật nào?
Quy hoạch động
Tham lam
Quay lui
Nhánh và cận
Bài toán tô màu đồ thị (Graph Coloring) thường sử dụng kỹ thuật nào?
Tham lam
Quy hoạch động
Chia để trị
Tìm kiếm nhị phân
Thuật toán nhánh và cận (Branch and Bound) thường được sử dụng để giải bài toán nào?
Sắp xếp mảng
Bài toán người thương gia du hành (TSP)
Tìm kiếm tuyến tính
Tìm cây bao trùm tối thiểu
Độ phức tạp thời gian của thuật toán tìm kiếm tuyến tính (Linear Search) là:
O(n)
O(log n)
O(n²)
O(n log n)
Trong thuật toán HeapSort, cấu trúc dữ liệu nào được sử dụng chính?
Mảng
Danh sách liên kết
Heap
Đồ thị
Thời gian thực thi trung bình của thuật toán QuickSort là:
O(n)
O(n log n)
O(n²)
O(log n)
Thuật toán nào sau đây không thuộc kỹ thuật tham lam?
Huffman Coding
Dijkstra’s Algorithm
Dynamic Programming
Kruskal’s Algorithm
Trong bài toán dãy con tăng dài nhất (LIS), phương pháp nào thường được sử dụng?
Tham lam
Quy hoạch động
Chia để trị
Quay lui
Độ phức tạp không gian của thuật toán Floyd-Warshall là:
O(n)
O(n²)
O(n³)
O(log n)
Thuật toán nào sau đây phù hợp để giải bài toán tìm đường đi ngắn nhất trong đồ thị có trọng số âm?
Dijkstra’s Algorithm
Bellman-Ford Algorithm
Prim’s Algorithm
Kruskal’s Algorithm
Trong bài toán cái túi 0-1, nếu sử dụng tham lam, kết quả có luôn tối ưu không?
Có, luôn tối ưu
Không, không luôn tối ưu
Chỉ tối ưu khi không có giới hạn trọng lượng
Tùy thuộc vào cách chọn phần tử
Thuật toán nào sau đây sử dụng hàng đợi ưu tiên?
Breadth First Search (BFS)
Dijkstra’s Algorithm
Depth First Search (DFS)
MergeSort
Độ phức tạp thời gian của thuật toán Bubble Sort trong trường hợp xấu nhất là
O(n)
O(n log n)
O(n²)
O(log n)
Trong quy hoạch động, kỹ thuật nào được sử dụng để tránh tính toán lại các bài toán con đã giải?
Memoization
Greedy Choice
Backtracking
Divide and Conquer
Bài toán nào sau đây thuộc lớp NP-complete?
Tìm đường đi ngắn nhất
Bài toán người thương gia du hành (TSP)
Sắp xếp mảng
Tìm kiếm nhị phân
