Cho thuật toán tìm nhị phân không đệ quy sau: int NRecBinarySearch (int M[], int N, int X) { int First = 0; int Last = N – 1; while (First <= Last) { int Mid = (First + Last)/2; if (X == M[Mid]) return(Mid); if (X < M[Mid]) Last = Mid – 1; else First = Mid + 1; } return(-1); } Chọn câu đúng nhất trong trường hợp tốt nhất khi phần tử ở giữa của mảng có giá trị bằng X:
A. Số phép gán: Gmin = 3 Số phép so sánh: Smin = 2
B. Số phép gán: Gmin = 2 Số phép so sánh: Smin = 3
C. Số phép gán: Gmin = 2 Số phép so sánh: Smin = 2
D. Số phép gán: Gmin = 0 Số phép so sánh: Smin = 2