农夫约翰为了找到最'中间'的奶牛,正在调查他的牛群。一半奶牛的产奶量不多于这只'中间'奶牛,另一半的产奶量不少于这只'中间'奶牛。约翰想知道这只'中间'奶牛的产奶量是多少。

给出一个奇数 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)。

寻找中间奶牛的产奶量:C++实现

原文地址: https://www.cveoy.top/t/topic/qouH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录