Chỉnh sửa nâng cấp chương trình của nhiệm vụ thực hành để đưa ra kết quả là vùng các phần tử

Luyện tập trang 39 Chuyên đề Tin học 11: Chỉnh sửa nâng cấp chương trình của nhiệm vụ thực hành để đưa ra kết quả là vùng các phần tử có giá trị bằng C của dãy gốc, tức là yêu cầu đưa ra chỉ số đầu, chỉ số cuối và số lượng phần tử của vùng có giá trị bằng C

Ví dụ nếu A = [0, 1, 2, 2, 2, 2, 4, 5, 5, 6], C = 2, thì kết quả trả lại là 2, 5, 4.

Trả lời

Trả lời:

- Chương trình trả về ba giá trị start, end và count, tương ứng với chỉ số đầu tiên, chỉ số cuối cùng và số lượng phần tử của vùng có giá trị bằng C trong dãy A.

- Trong trường hợp không tìm thấy C trong dãy A, chương trình trả về -1, -1, 0.

- Nếu giá trị tại vị trí mid bằng C, ta sử dụng hai biến start và end để tìm ra chỉ số đầu tiên và cuối cùng của vùng có giá trị bằng C. Sau đó, ta trả về giá trị start + 1, end - 1 và end - start - 1.

- Nếu giá trị tại vị trí mid nhỏ hơn C, ta tiếp tục tìm kiếm phần tử có giá trị bằng C ở nửa bên phải của dãy A.

- Nếu giá trị tại vị trí mid lớn hơn C, ta tiếp tục tìm kiếm phần tử có giá trị bằng C ở nửa bên trái của dãy A.

Chỉnh sửa nâng cấp chương trình của nhiệm vụ thực hành để đưa ra kết quả

Ví dụ chạy thử chương trình:

Chỉnh sửa nâng cấp chương trình của nhiệm vụ thực hành để đưa ra kết quả

Thu được kết quả:

Chỉnh sửa nâng cấp chương trình của nhiệm vụ thực hành để đưa ra kết quả

Xem thêm lời giải bài tập Chuyên đề học tập Tin học lớp 11 Kết nối tri thức hay, chi tiết khác:

Bài 6: Ý tưởng và kĩ thuật chia để trị

Bài 7: Thiết kế thuật toán theo kĩ thuật chia để trị

Bài 8: Thực hành thiết thuật toán tìm kiếm theo kĩ thuật chia để trị

Bài 9: Sắp xếp trộn

Bài 10: Thực hành giải toán bằng kĩ thuật chia để trị

Bài 11: Bài toán tìm kiếm theo kĩ thuật duyệt

Câu hỏi cùng chủ đề

Xem tất cả