Câu hỏi:

12/07/2024 307 Lưu

Tìm số phép toán đơn cần thực hiện trong thuật toán trên nếu dãy có 2 phần tử.

Quảng cáo

Trả lời:

verified Giải bởi Vietjack

Ta có công thức: T(n) = T(n/2) + O(1) và T(1) = O(1) = 1

Với n = 2 ta có T(2) = T(2/2) + O(1) = T(1) + O(1) = 1 + 1 = 2

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Lời giải

Khi left = right, nghĩa là chỉ còn một phần tử để xét. Ta so sánh giá trị của phần tử đó với giá trị cần tìm x.

Nếu phần tử đó bằng x thì ta trả về vị trí của phần tử đó (left hoặc right).

Nếu phần tử đó khác x thì ta trả về giá trị -1 để thể hiện không tìm thấy phần tử x trong dãy.

Lời giải

Thuật toán tìm số nguyên lớn nhất không vượt quá căn bậc hai của n có thể được thiết kế bằng kĩ thuật chia để trị theo các bước sau:

1. Nếu n bằng 0 hoặc 1, trả về n.

2. Đặt a bằng căn bậc hai của n.

3. Nếu a bằng n, trả về a.

4. Ngược lại, tìm số nguyên lớn nhất không vượt quá căn bậc hai của n/2 và số nguyên lớn nhất không vượt quá căn bậc hai của n - 1. So sánh hai số này và trả về số lớn hơn.

Để tính giá trị (số nguyên) gần đúng căn bậc hai của số tự nhiên n cho trước, người (ảnh 2)

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP