Câu hỏi:
11/05/2023 172Bài toán tìm vùng chỉ số của dãy đã sắp xếp.
Thiết lập thuật toán chia để trị để giải bài toán sau: Cho trước dãy A gồm n phần tử đã được sắp xếp theo thứ tự tăng dần, ví dụ:
A= [1, 2, 3, 3, 4, 4, 4, 5, 6, 6]
Cho trước giá trị K, cần tìm ra vùng chỉ số gồm các phần tử bằng K. Chương trình cần trả về hai chỉ số start, end là vị trí bắt đầu và kết thúc gồm toàn các giá trị K. Nếu không tìm thấy K thì phải trả về -1, -1.
Trong ví dụ trên, nếu K = 4 thì cần trả về hai chỉ số 4, 6.
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).
Quảng cáo
Trả lời:
Thực hiện các bước sau:
1. Tìm phần tử giữa của dãy.
2. Nếu giá trị ở vị trí giữa lớn hơn K, ta tiếp tục tìm kiếm trong nửa đầu của dãy (bên trái phần tử giữa).
3. Nếu giá trị ở vị trí giữa nhỏ hơn K, ta tiếp tục tìm kiếm trong nửa sau của dãy (bên phải phần tử giữa).
4. Nếu giá trị ở vị trí giữa bằng K, ta tiến hành tìm vị trí bắt đầu và kết thúc của đoạn chứa các phần tử bằng K bằng cách tiến hành tìm kiếm vị trí bắt đầu và kết thúc của các phần tử liên tiếp bằng K từ phải sang trái và từ trái sang phải. Khi tìm được hai vị trí này, ta sẽ trả về start và end.
5. Nếu không tìm thấy K trong dãy, ta trả về -1, -1.
CÂU HỎI HOT CÙNG CHỦ ĐỀ
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?
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.
Câu 4:
Tìm cách thiết lập thuật toán tính theo phương pháp chia để trị nhưng không sử dụng đệ quy.
Câu 5:
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.
Câu 6:
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) = với a là số bất kì (khác 0), n là số nguyên không âm, ở đây đượ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?
Câu 7:
Hãy thiết lập thuật toán và chương trình tính luỹ thừa với a là số bất kì khác 0, n là số nguyên không âm.
Đề thi cuối học kì 1 Tin học 11 Kết nối trí thức có đáp án (Đề 3)
Đề thi cuối học kì 1 Tin học 11 Kết nối trí thức có đáp án (Đề 1)
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 11 có đáp án
Đề thi cuối học kì 1 Tin học 11 Kết nối trí thức có đáp án (Đề 2)
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 10 có đáp án
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 12 có đáp án
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 13 có đáp án
Đề thi cuối kì 1 môn Tin học lớp 11 Cánh diều có đáp án (Đề 1)
về câu hỏi!