Category:
Trắc nghiệm Cánh diều Tin học 7 bài 2 Tìm kiếm nhị phân
Tags:
Bộ đề 1
13. Xét mảng đã sắp xếp: [2, 5, 8, 12, 16, 23, 38, 56, 72, 91]. Tìm kiếm giá trị 23. Vòng lặp đầu tiên, mid sẽ là chỉ số nào?
Mảng có 10 phần tử (chỉ số từ 0 đến 9). Trung bình cộng của 0 và 9 là 4.5. Trong thực tế, chỉ số mid thường được làm tròn xuống hoặc lên. Nếu làm tròn xuống, mid = floor((0+9)/2) = 4. Tuy nhiên, câu hỏi có lựa chọn giá trị trung bình. Theo phân tích phổ biến, mid = floor((low + high) / 2). Với low=0, high=9, mid = floor((0+9)/2) = 4. Giá trị tại chỉ số 4 là 16. Nếu mid được tính là (low+high)/2 không làm tròn, nó sẽ là 4.5. Tuy nhiên, chỉ số mảng phải là số nguyên. Giả sử làm tròn xuống: mid = 4 (giá trị 16). Nếu làm tròn lên: mid = 5 (giá trị 23). Câu hỏi có vẻ hơi khó hiểu về cách tính mid. Tuy nhiên, nếu xét công thức phổ biến nhất là (low + high) // 2 (chia lấy phần nguyên), thì low=0, high=9 -> mid = (0+9)//2 = 4. Giá trị tại mid=4 là 16. Nếu so sánh 23 với 16, 23 > 16, nên ta tìm tiếp ở nửa phải. Nếu mid là 5 (giá trị 23), thì ta tìm thấy ngay. Tuy nhiên, lựa chọn 3 có vẻ mô tả cách tính mid, dù không hoàn chỉnh. Xét lại công thức tính mid: mid = low + (high - low) // 2. Với low=0, high=9, mid = 0 + (9-0)//2 = 4. Giá trị tại chỉ số 4 là 16. Nếu phần tử cần tìm là 23, ta sẽ tìm tiếp ở nửa phải. Tuy nhiên, lựa chọn 3 là Chỉ số 4.5 (trung bình cộng của 0 và 9). Điều này có thể ám chỉ cách tính mid chưa được làm tròn. Nếu xét mid là 5 (giá trị 23), thì 23 == 23, tìm thấy ngay. Lựa chọn 2 là giá trị đúng cần tìm. Lựa chọn 3 mô tả cách tính mid ban đầu. Trong nhiều thuật toán, mid được tính là (low + high) // 2. Với low=0, high=9, mid = 4. Nếu xét 23, nó lớn hơn 16 (tại mid=4). Vậy ta sẽ tìm ở nửa phải. Nếu mid được tính là 5, thì ta tìm thấy ngay. Lựa chọn 2 là giá trị đúng cần tìm. Lựa chọn 3 mô tả cách tính mid (4.5), có thể là một cách diễn đạt khác về việc lấy trung bình. Tuy nhiên, chỉ số mảng phải là nguyên. Theo cách tính mid thông thường (làm tròn xuống): mid = 4. Nếu giá trị cần tìm là 23, ta sẽ so sánh 23 với 16. Vì 23 > 16, ta sẽ tìm ở nửa phải. mid = 5 (giá trị 23) là kết quả tìm thấy ngay lập tức. Lựa chọn 2 là đúng. Nhưng câu hỏi là mid sẽ là chỉ số nào?. Nếu sử dụng công thức mid = (low + high) // 2, thì mid = 4. Nếu sử dụng mid = (low + high + 1) // 2, thì mid = 5. Lựa chọn 3 là Chỉ số 4.5 (trung bình cộng của 0 và 9). Có thể câu hỏi muốn kiểm tra cách tính trung bình để tìm mid. Nếu tính trung bình: (0+9)/2 = 4.5. Tuy nhiên, chỉ số mảng phải là số nguyên. Giả sử thuật toán thực hiện làm tròn xuống: mid = 4. Nếu thuật toán làm tròn lên: mid = 5. Nếu câu hỏi ám chỉ giá trị trung bình trước khi làm tròn để xác định mid, thì 4.5 là đúng. Nếu xét giá trị 23, nó nằm ở chỉ số 5. Tuy nhiên, câu hỏi hỏi về mid. Nếu mid=4 (giá trị 16), ta tiếp tục tìm. Nếu mid=5 (giá trị 23), ta tìm thấy. Lựa chọn 2 là kết quả tìm thấy. Lựa chọn 3 mô tả cách tính mid. Trong trường hợp này, lựa chọn 3 có vẻ mô tả bước tính toán ban đầu để xác định chỉ số giữa. Nếu mid là 5, thì giá trị là 23 và tìm thấy ngay. Nhưng nếu mid là 4, ta tiếp tục. Câu hỏi này hơi mơ hồ về cách tính mid. Tuy nhiên, dựa trên cách diễn đạt trung bình cộng của 0 và 9, lựa chọn 3 là cách tính toán để tìm mid. Kết luận Lý giải: Chỉ số 4.5 (trung bình cộng của 0 và 9).