Câu hỏi:

11/05/2023 250

Xây dựng thuật toán cho bài toán sau: Cho trước dãy các số đã được sắp xếp tăng dần. Với giá trị K cho trước cần tìm phần tử của dãy gốc có giá trị gần với K nhất.

Sách mới 2k7: 30 đề đánh giá năng lực DHQG Hà Nội, Tp. Hồ Chí Minh, BKHN 2025 mới nhất (chỉ từ 110k).

Mua bộ đề Hà Nội Mua bộ đề Tp. Hồ Chí Minh Mua đề Bách Khoa

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

- Để tìm ra các phần tử của dãy gần K nhất chúng ta cần thêm các tính toán phụ tại dòng 10

Xây dựng thuật toán cho bài toán sau: Cho trước dãy các số đã được sắp xếp tăng dần (ảnh 1)

- Chương trình trên hoàn toàn tương tự thuật toán tìm kiếm tuần tự, chỉ có một vòng lặp tại dòng 9, do đó có thời gian chạy O(n).

- Chúng ta thiết kế thuật toán thứ hai dựa trên tìm kiếm nhị phân. Hàm đệ quy chính sẽ được thiết kế theo dạng valueClosest(A, left, right, K) sẽ tìm phần tử gần K nhất trong khoảng chỉ số từ left đến right. Trước tiên có một số nhận xét cho các trường hợp đặc biệt.
+ Nếu n = 1, dãy A chỉ có một phần tử, khi đó hàm sẽ trả lại phần tử duy nhất của A.
+ Nếu n = 2, dãy A có hai phần tử thì cần so sánh phần tử nào gần K hơn chính
là phần tử cần tìm.

Chương trình cuối cùng có dạng như sau

Xây dựng thuật toán cho bài toán sau: Cho trước dãy các số đã được sắp xếp tăng dần (ảnh 2)

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

Câu 1:

Hãy giải thích kĩ hơn chương trình 2 trên tại các dòng 2 và 4.

Xem đáp án » 12/07/2024 370

Câu 2:

Mô tả các bước tính bằng tay phép tính luỹ thừa  theo hai chương trình trên. Cách nào nhanh hơn?

Xem đáp án » 12/07/2024 338

Câu 3:

Viết chương trình đo thời gian thực chạy để so sánh hai phương án của bài toán.

Xem đáp án » 12/07/2024 301

Câu 4:

Tìm cách thiết lập thuật toán tính an theo phương pháp chia để trị nhưng không sử dụng đệ quy.

Xem đáp án » 11/05/2023 301

Câu 5:

Trong bài học này em sẽ thiết kế lời giải cho hai bài toán sau:

1. Bài toán tính luỹ thừa exp(a, n) = an với a là số bất kì (khác 0), n là số nguyên không âm, ở đây an được hiểu là tích của n lần giá trị a an = a × a × ... × a (n lần).

2. Ban giám hiệu nhà trường cần tìm một bạn lớp em có chiều cao đúng bằng 1,7 m hoặc gần với chiều cao đó nhất để tham gia tập đội hình thể thao.

Với hai bài toán trên em sẽ thực hiện như thế nào?

Xem đáp án » 11/05/2023 238

Câu 6:

Hãy thiết lập thuật toán và chương trình tính luỹ thừa an với a là số bất kì khác 0, n là số nguyên không âm.

Xem đáp án » 11/05/2023 216

Bình luận


Bình luận