Cho thuật toán sau:
int LinearSearch (float M[], int N, float X)
{
int k = 0;
M[N] = X;
while (M[k] != X) //n+1 lan
(M[k] != X) //n+1 lan 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: B
Thuật toán LinearSearch tìm kiếm một giá trị X trong mảng M có N phần tử. Trường hợp xấu nhất xảy ra khi X không có trong mảng.
1. **Số phép gán:**
- `int k = 0;` (1 phép gán)
- `M[N] = X;` (1 phép gán). Phép gán này có mục đích để đảm bảo vòng lặp `while` luôn dừng lại, ngay cả khi X không tồn tại trong mảng M[0...N-1].
Vậy, số phép gán tối đa là Gmax = 2.
2. **Số phép so sánh:**
- Vòng lặp `while (M[k] != X)` sẽ được thực hiện N+1 lần (k chạy từ 0 đến N). Vì X không có trong mảng M[0...N-1], vòng lặp này sẽ chạy cho đến khi k = N và M[N] = X, lúc này điều kiện dừng. Do đó số phép so sánh là N + 1.
- Sau vòng lặp while, có một phép so sánh `if (k < N)` để kiểm tra xem X có được tìm thấy trong mảng hay không.
Vậy, số phép so sánh tối đa là Smax = N + 1.
Vậy, phương án đúng là: Số phép gán: Gmax = 2 và Số phép so sánh: Smax = N + 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
