Thuật toán sau đây trong Python hoặc C++ thể hiện thuật toán tìm kiếm: Hàm viết bằng ngôn ngữ Python Hàm viết bằng ngôn ngữ C++ def Tim(A,k): d=0 c=len(A)-1 while d<=c:
Giải thích
Câu | Lệnh hỏi | Đáp án (Đ/S) |
4 (CS) | a | Đ |
b | Đ | |
c | Đ | |
d | S |
28/30
Thuật toán sau đây trong Python hoặc C++ thể hiện thuật toán tìm kiếm:
Hàm viết bằng ngôn ngữ Python | Hàm viết bằng ngôn ngữ C++ |
def Tim(A,k): d=0 c=len(A)-1 while d<=c: g=(d+c)//2 if A[g]==k: return g elif A[g]<k: d=g+1 else: c=g-1 return -1 | int Tim(const vector<int>& A, int k) { int d=0; int c=A.size()-1; while (d<=c) { int g=d + (c-d)/2; if (A[g]==k){ return g; } else if (A[g]<k){ d=g+1; } else{ c=g-1; } return -1; } } |
Một số bạn học sinh đưa nhận xét về thuật toán trên như sau:
Thuật toán sử dụng mảng A để lưu trữ các phần tử cần tìm kiếm.
Đây là thuật toán tìm kiếm nhị phân và yêu cầu mảng A phải được sắp xếp theo thứ tự tăng dần.
Cho mảng A=[1, 4, 5, 7, 9, 12, 15, 23, 25, 45, 50] và k=12. Trong trường hợp này, số lần máy tính kiểm tra để tìm ra số k (A[g]==k) là 3 lần.
Lớp 12A có danh sách các bạn không cùng tên học phụ đạo môn Toán, giáo viên chủ nhiệm đã lưu tên các học sinh vào một danh sách A. Giả sử A = [“An”, “Bình”, “Bửu”, “Cẩm”, “Hạnh”, “Hằng”, “Huy”, “Khánh”, “Linh”, “Minh”, “Nam”, “Nhi”, “Trân]. Giáo viên chủ nhiệm đã dùng hàm trên để tìm vị trí của học sinh tên “Hạnh” (k=”Hạnh”), lúc đó kết quả tìm thấy là 5.
Câu | Lệnh hỏi | Đáp án (Đ/S) |
4 (CS) | a | Đ |
b | Đ | |
c | Đ | |
d | S |