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.

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!

4 giờ trước (8:12)

Vòng lặp 1:

Dãy ban đầu: 3, 2, 4, 1, 5


Tìm số nhỏ nhất từ vị trí 0 đến 4 → là 1


Đổi chỗ 1 với 3


Kết quả sau vòng 1: 1, 2, 4, 3, 5


Vòng lặp 2:

Dãy hiện tại: 1, 2, 4, 3, 5


Tìm số nhỏ nhất từ vị trí 1 đến 4 → là 2


Đã đúng vị trí → không đổi


Kết quả sau vòng 2: 1, 2, 4, 3, 5


Vòng lặp 3:

Dãy hiện tại: 1, 2, 4, 3, 5


Tìm số nhỏ nhất từ vị trí 2 đến 4 → là 3


Đổi chỗ 3 với 4


Kết quả sau vòng 3: 1, 2, 3, 4, 5


Vòng lặp 4:

Dãy hiện tại: 1, 2, 3, 4, 5


Tìm số nhỏ nhất từ vị trí 3 đến 4 → là 4


Đã đúng vị trí → không đổi


Kết quả sau vòng 4: 1, 2, 3, 4, 5


Kết luận:

Dãy số sau khi sắp xếp tăng dần là: 1, 2, 3, 4, 5

3 giờ trước (9:10)

đây nhé

Dãy ban đầu: [7.5, 9.0, 6.0, 8.5, 7.0]

  • Lượt 1: so sánh dần, đổi chỗ → [7.5, 6.0, 8.5, 7.0, 9.0]
  • Lượt 2: tiếp tục đổi chỗ → [6.0, 7.5, 7.0, 8.5, 9.0]
  • Lượt 3: tiếp tục → [6.0, 7.0, 7.5, 8.5, 9.0]
  • Lượt 4: dãy đã đúng thứ tự.

Kết quả: [6.0, 7.0, 7.5, 8.5, 9.0]

4 giờ trước (8:14)

Đáp án : 1. Phần tử có giá trị nhỏ nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.