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.

12 tháng 6

Nguyên lí hoạt động:

  1. Duyệt qua danh sách từ đầu đến cuối.
  2. So sánh từng cặp phần tử kề nhau:
    • Nếu sai thứ tự (ví dụ: phần tử trước lớn hơn phần tử sau trong sắp xếp tăng dần), thì đổi chỗ.
  3. Sau mỗi vòng lặp, phần tử lớn nhất (hoặc nhỏ nhất) sẽ được đẩy dần về cuối (hoặc đầu).
  4. Lặp lại quá trình cho đến khi không còn đổi chỗ nào, tức là danh sách đã được sắp xếp.
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!