K
Khách

Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.

29 tháng 4

Dãy số sau khi sắp xếp tăng dần: 2; 4; 5; 7; 8; 9; 13; 20

Vòng lặp thứ nhất: Chia đôi dãy số, ta thấy 13 > 7 nên ta bỏ phần bên trái. Dãy số còn lại: 8; 9; 13; 20

Vòng lặp thứ hai: Chia đôi dãy số, ta thấy 13 > 9 nên ta bỏ phần bên trái. Dãy số còn lại; 13; 20

Vòng lặp thứ ba: Chia đôi dãy số, ta thấy 13 = 13 nên dừng tìm kiếm.

Thông báo kết quả tìm kiếm: số 13 được tìm thấy sau lần lặp thứ ba

23 tháng 4 2023

giúp tôi giải câu này với

13 tháng 12 2023

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    ll a[]={10,2,5,12,20,6,8,15,18}; //mảng đã cho
    ll n=sizeof(a)/sizeof(a[0]); //độ dài mảng
    sort(a,a+n); //sắp xếp mảng
    //Thuật toán tìm kiếm nhị phân
    ll l=0, r=n-1;
    while(l<=r) {
        ll mid=(l+r)/2; //Tìm phần tử giữa left và right
        if(a[mid]<15) l=mid+1; //Vì từ đoạn [0,mid] thì phần tử nhỏ hơn 15 nên ta duyệt từ khoảng (mid,r]
        else r=mid-1; //vì thấy nên rút r để thu hẹp phạm vi
    }
    cout << l+1; //in ra kq (vì bắt đầu từ 0 đến n-1 nên phải tăng thêm để ra vị trí đúng)
}

(Bạn có thể dựa vào code mình để rút ra các bước)

Chúc bạn học tốt!