寻找中间奶牛的产奶量:C++实现
农夫约翰为了找到最'中间'的奶牛,正在调查他的牛群。一半奶牛的产奶量不多于这只'中间'奶牛,另一半的产奶量不少于这只'中间'奶牛。约翰想知道这只'中间'奶牛的产奶量是多少。
给出一个奇数 N 表示奶牛总数,以及它们的产奶量 Ci ,要求找出'中间'产量。用c++做
输入描述
第 1 行一个正整数 N 。
第 2 行到第 N+1 行,每一行一个正整数,表示其中一只奶牛的产奶量。
输出描述
一行一个整数,表示'中间'产量的一个整数。
提示
数据范围:1 <= N <= 10000,1 <= Ci <= 1000000。
内容
解决这个问题的一个简单方法是将奶牛的产奶量排序,然后找到中间位置的奶牛的产奶量。
以下是一个可能的实现:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int N;
std::cin >> N;
std::vector<int> milkProduction(N);
for (int i = 0; i < N; ++i) {
std::cin >> milkProduction[i];
}
// 将奶牛的产奶量排序
std::sort(milkProduction.begin(), milkProduction.end());
// 找到中间位置的奶牛的产奶量
int middleIndex = N / 2;
int middleProduction = milkProduction[middleIndex];
std::cout << middleProduction << std::endl;
return 0;
}
这个实现首先读取奶牛的数量 N,然后使用一个循环读取每头奶牛的产奶量。接下来,它使用 std::sort 函数对奶牛的产奶量进行排序。最后,它找到中间位置的奶牛的产奶量,并将其输出。
这个实现的时间复杂度为 O(NlogN),因为排序的时间复杂度为 O(NlogN)。
原文地址: https://www.cveoy.top/t/topic/qouH 著作权归作者所有。请勿转载和采集!