Câu hỏi:
17/06/2026 152
Phương án không đệ quy của thuật toán tìm kiếm nhị phân có phải là chia để trị không?
Phương án không đệ quy của thuật toán tìm kiếm nhị phân có phải là chia để trị không?
Trả lời:
Giải bởi Vietjack
Không, phương án không đệ quy của thuật toán tìm kiếm nhị phân không phải là chia để trị.
Thuật toán tìm kiếm nhị phân thực hiện tìm kiếm một phần tử trong một mảng đã được sắp xếp theo thứ tự tăng dần (hoặc giảm dần) bằng cách chia mảng thành hai phần và so sánh giá trị cần tìm với phần tử ở giữa mảng. Nếu giá trị cần tìm nhỏ hơn phần tử ở giữa, ta tìm kiếm trong nửa đầu tiên của mảng. Ngược lại, nếu giá trị cần tìm lớn hơn phần tử ở giữa, ta tìm kiếm trong nửa sau của mảng. Tiếp tục lặp lại quá trình này cho đến khi tìm thấy phần tử cần tìm hoặc không tìm thấy phần tử đó trong mảng.
Phương án chia để trị là một kỹ thuật giải quyết bài toán bằng cách chia bài toán thành các bài toán con, giải quyết các bài toán con đó đệ quy và kết hợp kết quả của các bài toán con để giải quyết bài toán ban đầu. Phương án chia để trị thường được sử dụng cho các bài toán mà có thể chia thành các bài toán con độc lập với nhau, ví dụ như thuật toán sắp xếp chia để trị Merge Sort.
Không, phương án không đệ quy của thuật toán tìm kiếm nhị phân không phải là chia để trị.
Thuật toán tìm kiếm nhị phân thực hiện tìm kiếm một phần tử trong một mảng đã được sắp xếp theo thứ tự tăng dần (hoặc giảm dần) bằng cách chia mảng thành hai phần và so sánh giá trị cần tìm với phần tử ở giữa mảng. Nếu giá trị cần tìm nhỏ hơn phần tử ở giữa, ta tìm kiếm trong nửa đầu tiên của mảng. Ngược lại, nếu giá trị cần tìm lớn hơn phần tử ở giữa, ta tìm kiếm trong nửa sau của mảng. Tiếp tục lặp lại quá trình này cho đến khi tìm thấy phần tử cần tìm hoặc không tìm thấy phần tử đó trong mảng.
Phương án chia để trị là một kỹ thuật giải quyết bài toán bằng cách chia bài toán thành các bài toán con, giải quyết các bài toán con đó đệ quy và kết hợp kết quả của các bài toán con để giải quyết bài toán ban đầu. Phương án chia để trị thường được sử dụng cho các bài toán mà có thể chia thành các bài toán con độc lập với nhau, ví dụ như thuật toán sắp xếp chia để trị Merge Sort.
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1:
Em hãy viết chương trình cài đặt các thuật toán tìm kiếm tuần tự và nhị phân rồi tiến hành đo thời gian thực trên máy tính với hai thuật toán này. Thực hiện kiểm thử với các bộ dữ liệu n = 10, 20, 50, 100 và ghi vào bảng để so sánh thời gian chạy giữa hai thuật toán tìm kiếm này.
Em hãy viết chương trình cài đặt các thuật toán tìm kiếm tuần tự và nhị phân rồi tiến hành đo thời gian thực trên máy tính với hai thuật toán này. Thực hiện kiểm thử với các bộ dữ liệu n = 10, 20, 50, 100 và ghi vào bảng để so sánh thời gian chạy giữa hai thuật toán tìm kiếm này.
Câu 2:
1. Hãy trình bày cách giải bài toán tìm bi giả với 5 viên bi.
2. Trường hợp tổng quát có n viên bi cách làm như thế nào?
3. Ý tưởng chia để trị để giải bài toán tìm bi giả được thể hiện như thế nào?
1. Hãy trình bày cách giải bài toán tìm bi giả với 5 viên bi.
2. Trường hợp tổng quát có n viên bi cách làm như thế nào?
3. Ý tưởng chia để trị để giải bài toán tìm bi giả được thể hiện như thế nào?
Câu 4:
Để tính giá trị (số nguyên) gần đúng căn bậc hai của số tự nhiên n cho trước, người ta đã thiết lập hàm sau với ý tưởng gần tương tự thuật toán tìm kiếm tuần tự như sau
Hãy thiết kế lại thuật toán tìm số nguyên lớn nhất không vượt quá căn bậc hai của n bằng kĩ thuật chia để trị.
Để tính giá trị (số nguyên) gần đúng căn bậc hai của số tự nhiên n cho trước, người ta đã thiết lập hàm sau với ý tưởng gần tương tự thuật toán tìm kiếm tuần tự như sau

Hãy thiết kế lại thuật toán tìm số nguyên lớn nhất không vượt quá căn bậc hai của n bằng kĩ thuật chia để trị.
Câu 5:
Cho trước danh sách gồm có tên, điểm thi và được sắp xếp theo thứ tự tăng dần của điểm thi, ví dụ danh sách: [["Bình", 7.5], ["Hoa", 8], ["An", 9], ["Quang", 10]]. Viết chương trình nhập một điểm số và tìm tên học sinh có điểm thi bằng điểm số đã nhập, nếu không tìm thấy thì thông báo "không có".
Cho trước danh sách gồm có tên, điểm thi và được sắp xếp theo thứ tự tăng dần của điểm thi, ví dụ danh sách: [["Bình", 7.5], ["Hoa", 8], ["An", 9], ["Quang", 10]]. Viết chương trình nhập một điểm số và tìm tên học sinh có điểm thi bằng điểm số đã nhập, nếu không tìm thấy thì thông báo "không có".
Câu 7:
Trò chơi tìm bi giả
Có 5 viên bi giống hệt nhau, biết rằng trong các viên bi này có một viên bi giả và viên bi giả này nặng hơn các viên bi còn lại.
Chỉ với một cái cân thăng bằng, em hãy tìm ra viên bi giả đó. Cần ít nhất bao nhiêu lần cân để tìm ra viên bi giả?
Trò chơi tìm bi giả
Có 5 viên bi giống hệt nhau, biết rằng trong các viên bi này có một viên bi giả và viên bi giả này nặng hơn các viên bi còn lại.
Chỉ với một cái cân thăng bằng, em hãy tìm ra viên bi giả đó. Cần ít nhất bao nhiêu lần cân để tìm ra viên bi giả?

Câu 8:
Trong thuật toán tìm kiếm nhị phân trên, phần cơ sở là các lệnh nào?
Trong thuật toán tìm kiếm nhị phân trên, phần cơ sở là các lệnh nào?
Câu 9:
Viết chương trình hoàn chỉnh nhập một dãy số đơn điệu tăng từ bàn phím, các số cách nhau bởi dấu cách. Sau đó, nhập số K bất kì từ bàn phím và thực hiện việc tìm kiếm số K trong dãy trên. Nếu tìm thấy thì trả lại chỉ số của phần tử có giá trị K, ngược lại trả về – 1.
Viết chương trình hoàn chỉnh nhập một dãy số đơn điệu tăng từ bàn phím, các số cách nhau bởi dấu cách. Sau đó, nhập số K bất kì từ bàn phím và thực hiện việc tìm kiếm số K trong dãy trên. Nếu tìm thấy thì trả lại chỉ số của phần tử có giá trị K, ngược lại trả về – 1.
Câu 10:
Tìm chính xác số phép toán đơn cần thực hiện trong thuật toán tìm kiếm nhị phân nếu dãy gốc chỉ có 1 phần tử.
Tìm chính xác số phép toán đơn cần thực hiện trong thuật toán tìm kiếm nhị phân nếu dãy gốc chỉ có 1 phần tử.
Câu 11:
Mô tả các bước thực hiện thuật toán tìm kiếm nhị phân khi left = right
Mô tả các bước thực hiện thuật toán tìm kiếm nhị phân khi left = right
Câu 12:
Tìm số phép toán đơn cần thực hiện trong thuật toán trên nếu dãy có 2 phần tử.
Tìm số phép toán đơn cần thực hiện trong thuật toán trên nếu dãy có 2 phần tử.
Câu 13:
Đọc, quan sát phân tích sau để biết được tính vượt trội của tìm kiếm nhị phân với tìm kiếm tuần tự, biết được vai trò của kĩ thuật chia để trị trong thiết kế thuật toán.
Đọc, quan sát phân tích sau để biết được tính vượt trội của tìm kiếm nhị phân với tìm kiếm tuần tự, biết được vai trò của kĩ thuật chia để trị trong thiết kế thuật toán.
Câu 14:
Quan sát lại một lần nữa thuật toán tìm kiếm nhị phân trên dãy các phần tử đã sắp xếp và liên hệ với phương pháp chia để trị.
Quan sát lại một lần nữa thuật toán tìm kiếm nhị phân trên dãy các phần tử đã sắp xếp và liên hệ với phương pháp chia để trị.
