Những câu hỏi liên quan
k_o_t_en
Xem chi tiết
hà my
Xem chi tiết
hà my
Xem chi tiết
hà my
Xem chi tiết
Trương Huy Hoàng
13 tháng 12 2023 lúc 22:50

#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!

Bình luận (0)
Ngọc Linh
Xem chi tiết
Minh Lệ
7 tháng 11 2021 lúc 8:40

Input: N và dãy số nguyên a1, a2,..., aN

Ouput: dãy số sắp xếp theo thứ tự tăng dần

B1: Nhập vào n và dãy số nguyên a1, . . . ,aN;

B2: M ← N;

B3: Nếu M<2 thì in dãy đã sắp xếp rồi kết thúc;

B4. M ← M – 1; i ← 0;

B5: i ← i + 1;

B6: Nếu i > M thì quay lại bước 3;

B7. Nếu ai > ai+1 thì tráo đổi cho nhau;

B8: Quay lại bước 5; 

Bình luận (0)
Minh Lệ
Xem chi tiết
Bastkoo
22 tháng 10 2023 lúc 1:54

a)

import time

def linear_search(arr, x):

 """

 Tìm kiếm tuyến tính trong dãy arr để tìm giá trị x.

 Trả về vị trí của x trong dãy nếu x được tìm thấy, -1 nếu không tìm thấy.

 """

 n = len(arr)

 for i in range(n):

  if arr[i] == x:

   return i

 return -1

# Dãy số A

A = [3, 1, 0, 10, 13, 16, 9, 7, 5, 11]

# Phần tử cần tìm kiếm

C = 9

# Bắt đầu đo thời gian

start_time = time.perf_counter()

# Tìm kiếm phần tử C trong dãy A

result = linear_search(A, C)

# Kết thúc đo thời gian

end_time = time.perf_counter()

if result != -1:

 print(f"Phần tử {C} được tìm thấy tại vị trí {result} trong dãy A.")

else:

 print(f"Phần tử {C} không có trong dãy A.")

print(f"Thời gian thực hiện thuật toán: {end_time - start_time} giây.")

b)

import time

def binary_search(arr, x):

 """

 Tìm kiếm nhị phân trong dãy arr để tìm giá trị x.

 Trả về vị trí của x trong dãy nếu x được tìm thấy, -1 nếu không tìm thấy.

 """

 left, right = 0, len(arr) - 1

 while left <= right:

  mid = (left + right) // 2

  if arr[mid] == x:

   return mid

  elif arr[mid] < x:

   left = mid + 1

  else:

   right = mid - 1

 return -1

# Dãy số A đã được sắp xếp

A = [0, 1, 3, 5, 7, 9, 10, 11, 13, 16]

# Phần tử cần tìm kiếm

C = 9

# Bắt đầu đo thời gian

start_time = time.perf_counter()

# Tìm kiếm phần tử C trong dãy A bằng thuật toán tìm kiếm nhị phân

result = binary_search(A, C)

# Kết thúc đo thời gian

end_time = time.perf_counter()

if result != -1:

 print(f"Phần tử {C} được tìm thấy tại vị trí {result} trong dãy A.")

else:

 print(f"Phần tử {C} không có trong dãy A.")

print(f"Thời gian thực hiện thuật toán: {end_time - start_time} giây.")

-Thời gian thực hiện ở câu a là 8.99999,thời gian thực hiện ở câu b là 6,49999 giây.

Bình luận (0)
Panda
Xem chi tiết
Đức Nguyễn Anh
Xem chi tiết
Hiền Phạm
Xem chi tiết
Nguyễn Lê Phước Thịnh
9 tháng 1 2022 lúc 15:00

#include <bits/stdc++.h>

using namespace std;

long long a[8],n,i,j;

int main()

{

n=8;

for (i=1; i<=n; i++) cin>>a[i];

for (i=1; i<=n-1; i++)

for (j=i+1; j<=n; j++)

if (a[i]<a[j]) swap(a[i],a[j]);

for (i=1; i<=n; i++) cout<<a[i]<<" ";

return 0;

}

Bình luận (0)
ngô thị huỳnh thơ
Xem chi tiết
Trần Thị Huyền Linh
28 tháng 5 2018 lúc 21:02

lần 1:đổi 3 vs 1:1,3,7,9,5

lần 2:đổi:7 vs 5:1,3,5,9,7

lần 3:đổi:7 vs 9:1,3,5,7,9

k cho mk nha bn

chúc bn hc tốt 

Bình luận (0)
Hosimiya Ichigo
28 tháng 5 2018 lúc 21:03

Đổi số 1 lên đầu,số 5 ở thứ 3.

Ta có:1,3,5,7,9

Bình luận (0)