Em hãy viết hàm đệ quy để tìm kiếm nhị phân giá trị x trong dãy A

Vận dụng trang 34 Chuyên đề Tin học 11: Em hãy viết hàm đệ quy để tìm kiếm nhị phân giá trị x trong dãy A không giảm có n phần tử A0,A1, ..., An - 1 các phần tử có thể trùng nhau. Nếu tìm thấy thì hàm này trả về chỉ số i nhỏ nhất mà Ai = x. Nếu không tìm thấy thì hàm này trả về -1.

Lời giải:

include
using namespace std;
int tim(int *a,int left,int right,int x)
{
int m;
if(left>right) return 0;
m=(left+right)/2;
if(a[m]==x) return m;
if(x
return tim(a,m+1,right,x);
}
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int x;
cout<<"tim so: ";cin>>x;
if(int z=tim(a,0,9,x)) cout<<"tim thay tai vi tri: "<
else cout<<"khong tim thay\n";
}

Lời giải Chuyên đề Tin 11 Bài 2: Kĩ thuật đệ quy trong chia để trị hay, ngắn gọn khác:

Xem thêm lời giải bài tập Chuyên đề học tập Tin học 11 Cánh diều hay, ngắn gọn khác:

Xem thêm các tài liệu học tốt lớp 11 hay khác:


Giải bài tập lớp 11 sách mới các môn học