在统计学中,第一四分位数返回统计数字中位于四分之一处的数据。
假定下列函数的输入v是未排序的统计数据,函数Q1返回将v排序后的第一四分位数v[k]及其位置,即向量v中位于 k=[0.25*n](取整)处的元素及位置k。例如,v=(1,2,3,2,3,2,4), 则v排序后为(1,2,2,2,3,3,4), k=[0.25*n] = [0.25*7] = 1, v[k] = 2, 故返回结果为(2, 1). 假定输入v非空。
好吧,题目开始有点没看懂=。=使用vector存储数据,函数Q1用于返回结果。需要注意的是默认v已经给出。使用冒泡排序使v中元素升序排列,然后使用make_pair返回即可。
#include<iostream>
#include<vector>
using namespace std;
pair<double, int> Q1(vector<double> v) {
int temp;
for (int i = 0 ; i < v.size() ; i++) {
for (int j = 0 ; j < v.size() - i - 1 ; j++) {
if (v[j]>v[j+1]) {
temp = v[j];
v[j] = v[j+1];
v[j+1] = temp;
}
}
}
int k = v.size() / 4;
return make_pair(v[k], k);
}