Trung vị
Xét bài toán: Cho dãy số nguyên A = (a1, a2, …, an). Phần tử x của dãy được gọi là phần tử trung vị nếu nó lớn hơn hoặc bằng n2 phần tử của dãy và nhỏ hơn hoặc bằng các phần tử còn lại trong dãy. Ví dụ, với A = (8, 1, 6, 3, 9, 2, 3, l, 7) trung vị là phần tử có giá trị là 5. Tìm và đưa ra giá trị của phần tử trung vị của dãy A bất kì.
Em hãy lập trình giải bài toán trên. Trước khi lập trình cần tóm tắt bài toán, xác định thuật toán và cách tổ chức dữ liệu. Khi viết xong chương trình thì đề xuất ít nhất thêm hai bộ dữ liệu để kiểm thử chương trình.
Dữ liệu: Nhập vào từ thiết bị vào chuẩn một dòng chứa các phần tử của dãy, các số cách nhau một dấu cách.
Kết quả: Đưa ra thiết bị ra chuẩn giá trị của phần tử trung vị của dãy.
Ví dụ:
Input | Output |
8 1 6 5 9 2 3 1 7 | 5 |
Bằng cách nhấp vào Đăng nhập, bạn đồng ý Chính sách bảo mật và Điều khoản sử dụng của chúng tôi. Nếu đây không phải máy tính của bạn, để đảm bảo an toàn, hãy sử dụng Cửa sổ riêng tư (Tab ẩn danh) để đăng nhập (New Private Window / New Incognito Window).
Tóm tắt bài toán (Mô hình toán học)
Cho: Dãy A gồm n số nguyên.
Yêu cầu: Đưa ra phân tử trung vị (phần tử nằm ở giữa dãy đã sắp xếp).
Thuật toán và chọn kiểu dữ liệu cho các biến
- Bước 1. Nhập số nguyên n, nhập danh sách A chứa n số nguyên.
- Bước 2. Sắp xếp danh sách A.
- Bước 3. Đưa ra phần tử A [len (A) //2].
Tham khảo chương trình sau:
Ví dụ một số bộ dữ liệu để kiểm thử chương trình:
Tham gia Cộng đồng Lazi trên các mạng xã hội | |
Fanpage: | https://www.fb.com/lazi.vn |
Group: | https://www.fb.com/groups/lazi.vn |
Kênh FB: | https://m.me/j/AbY8WMG2VhCvgIcB |
LaziGo: | https://go.lazi.vn/join/lazigo |
Discord: | https://discord.gg/4vkBe6wJuU |
Youtube: | https://www.youtube.com/@lazi-vn |
Tiktok: | https://www.tiktok.com/@lazi.vn |
Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi
Vui | Buồn | Bình thường |