sicily 第一四分位点
2014-01-02 19:15
183 查看
在统计学中,第一四分位数返回统计数字中位于四分之一处的数据。
假定下列函数的输入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返回即可。
假定下列函数的输入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); }
相关文章推荐