Cho thuật toán sau:
int LinearSearch (int M[], int N, int X)
{ int k = 0;
while (M[k] != X k < N )
k++;
if (k < N )
return (k);
return (-1);
}
Chọn câu đúng nhất trong trường hợp xấu nhất khi không tìm thấy phần tử nào có giá trị bằng X:
Trả lời:
Đáp án đúng: A
Trong trường hợp xấu nhất, khi không tìm thấy phần tử nào có giá trị bằng X, thuật toán `LinearSearch` sẽ duyệt qua toàn bộ mảng `M` có `N` phần tử.
* **Số phép gán:** Phép gán `k = 0` được thực hiện một lần duy nhất trước vòng lặp `while`. Vậy `Gmax = 1`.
* **Số phép so sánh:**
* Trong vòng lặp `while`, điều kiện `M[k] != X && k < N` được kiểm tra. Điều này bao gồm hai phép so sánh: `M[k] != X` và `k < N`. Vòng lặp này sẽ thực hiện `N` lần (vì `X` không tồn tại trong mảng). Vì vậy, số phép so sánh trong vòng lặp là `2N`.
* Sau vòng lặp, điều kiện `k < N` trong câu lệnh `if` được kiểm tra một lần nữa. Điều này thực hiện phép so sánh thêm 1 lần.
* Vậy tổng số phép so sánh là: `Smax = 2N + 1`.
Vì vậy, phương án đúng nhất là:
* Số phép gán: `Gmax = 1`
* Số phép so sánh: `Smax = 2N + 1`
Đề cương ôn thi với 220 câu trắc nghiệm Cấu trúc dữ liệu và giải thuật có đáp án được chọn lọc và chia sẻ dưới đây, nhằm giúp bạn sinh viên hệ thống kiến thức chuẩn bị cho kì thi sắp diễn ra.
50 câu hỏi 60 phút
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
