当前位置:首页 » 操作系统 » 算法题中位数

算法题中位数

发布时间: 2022-04-17 06:49:17

Ⅰ 怎么计算中位值

中位值算法:将所有数排序,然后取最中间的数,如果是偶数则取中间的两个数然后除以2。

比如说有99个数字从小到大排列,排在第50的,就是这组数的中位数。这个数字的前面有49个数字,后面有49个数字,它正好排在最中间,就是中位数。

中位值---是将所给的一组数从小到大或从大到小排列,奇数个数的话取中间的数字,偶数个数的话取中间两个数的平均数。

(1)算法题中位数扩展阅读

1、特点

中位数:与数据的排列位置有关,某些数据的变动对它没有影响;它是一组数据中间位置上的代表值,不受数据极端值的影响。

2、作用

中位数:作为一组数据的代表,可靠性比较差,因为它只利用了部分数据。但当一组数据的个别数据偏大或偏小时,用中位数来描述该组数据的集中趋势就比较合适。

Ⅱ 数据统计的中位数算法

此题的中位数算法应该是将数据从小到大重新排列。N
是样本数
这里样本数为30.是偶数
则样本中位数M=1/2【(X(15)+X(15+1)】
这里就是M=1/2【X(30/2)+X(30/2+1)】
其中X后面小括号的是下标。我从这上面表示不出来。于是结果就是M=1/2(18+18)=18
明白了么?
中位数的计算主要是排序,然后根据样本数量是奇数还是偶数,确定公式代入公式找到中位数就可以了

Ⅲ 中位数算法

楼上才是白痴,自己什么也不懂不要说的别人也是什么也不懂。
就是因为有了你们这种人,世界多花了巨额的代价来多做不必要的工作。
很明显楼主不是你这样的。
实数的排序算法复杂度是o(nlogn),这个中位数可以做到o(n)
下面我来说明这个算法的过程。
算法是基于归并排序(merge-sort)的更改。
把中位数更改为等价的叙述。无序的n个数中的第int(n/2)大的元素。(k=int(n/2))
1.随机化数据,这样可以保证因为输出时候的对称性(可能的顺序输入)而造成的算法退化。
for
(int
i=number.count;i>=0;i--)
swap(number[i],number[random(0,i-1)]);//swap,交换,random,0,k闭区间的随机数。
2.归并排序主过程。
mergesort(a,b,k)//寻找number数组中从下标a到下标b的元素中的第k大的元素。
{
t=number[a];
把这a,b中的元素从排,使a~p-1的元素比t小,p+1~b的元素比t大。number[p]=t;//o(n),这步你构造吧。不是很困难,伪代码不写太多。
//此时比t小元素有p-1-a+1=p-a个,
//分情况,如果k=p-a+1,返回t
//如果k>p-a+1,返回mergesort(p+1,b,k-(p-a+1))
//如果k
评论
0
0
0
加载更多

Ⅳ 什么叫中位数.该怎么求

中位数
(Median)统计学名词。人教版初二教材内容。
将数据排序(从大到小或从小到大)后,位置在最中间的数值。即将数据分成两部分,一部分大于该数值,一部分小于该数值。中位数的位置:当样本数为奇数时,中位数=第(N+1)/2个数据
;
当样本数为偶数时,中位数为第N/2个数据与第N/2+1个数据的算术平均值

理性认识:把一组数据按从小到大的数序排列,在中间的一个数(或两个数的平均值)叫做这组数据的中位数。
中位数:
与数据的排列位置有关,某些数据的变动对它没有影响;它是一组数据中间位置上的代表值,不受数据极端值的影响。因此某些数据的变动对它的中位数影响不大。当一组数据中的个别数据变动较大时,可用它来描述其集中趋势。
中位数的算法
求中位数时,首先要先进行数据的排序(从小到大),然后计算中位数的序号,分数据为奇数个与偶数个两种来求.
中位数算出来可避免极端数据,代表着数据总体的中等情况。
如果总数个数是奇数的话,按从小到大的顺序,取中间的那个数
如果总数个数是偶数个的话,按从小到大的顺序,取中间那两个数的平均数
(例:2、3、4、5、6、7
中位数:4+5/2=4.5)
在物价涨幅攀升的时候,适当提高企业退休人员养老金标准以及在职职工的工资,有利于保障他们的基本生活,并逐步提高生活质量。但是,只提供一个“平均数”让人心里总是有点不大踏实。一个平均数会掩盖很多的问题,不久前网友还创作了这样的打油诗:“张村有个张千万,隔壁九个穷光蛋,平均起来算一算,人人都是张百万。”对于这样的问题,不是“平均数”的错,也不是统计学的错,统计学中有现成解决的办法,就是计算“中位数”。所谓“中位数”,以一个51人的企业为例,把所有人员年收入从大到小排列,正中间的一位,即第26位的年收入就是这家企业年收入的中位数。打油诗里的“张村”个人财产中位数就是“零”。这个时候平均数不能说明的问题,中位数就说清楚了。
注意:是从小到大,或者从大到小,不是随意乱排。
该题答案:(8+8)/2=8

Ⅳ 中位数算法

此题的中位数算法应该是将数据从小到大重新排列。n
是样本数
这里样本数为30.是偶数
则样本中位数m=1/2【(x(15)+x(15+1)】
这里就是m=1/2【x(30/2)+x(30/2+1)】
其中x后面小括号的是下标。我从这上面表示不出来。于是结果就是m=1/2(18+18)=18
明白了么?
中位数的计算主要是排序,然后根据样本数量是奇数还是偶数,确定公式代入公式找到中位数就可以了

Ⅵ 数学中中位数的算法

将数据排序后,位置在最中间的数值。即将数据分成两部分,一部分大于该数值,一部分小于该数值。中位数的位置:当样本数为奇数时,(N+1)/2;当样本数为偶数时,N/2

Ⅶ 中位数怎么求

一组数据按从小到大(或从大到小)的顺序依次排列,处在中间位置的一个数(或最中间两个数据的平均数.
中位数(Median)统计学名词.人教版初二教材内容(在高中必修3中也会出现).北师大版初二上册内容.
1、定义:一组数据按从小到大(或从大到小)的顺序依次排列,处在中间位置的一个数(或最中间两个数据的平均数,注意:和众数不同,中位数不一定在这组数据中).
2、中位数的优缺点:中位数是样本数据所占频率的等分线,它不受少数几个极端值得影响,有时用它代表全体数据的一般水平更合适.
3、在频率分布直方图中,中位数左边和右边的直方图的面积应该相等,由此可以估计中位数的值.
4、中位数也可表述为第50百分位数,二者等价.
5、直观印象描述:一半比“我”小,一半比“我”大.
中位数的算法
求中位数,首先要先进行数据的排序(从小到大),然后计算中位数的序号,分数据为奇数与偶数两种来求.(排序时,相同的数字不能省略)

中位数算出来可避免极端数据,代表着数据总体的中等情况.
如果总数个数是奇数的话,按从小到大的顺序,取中间的那个数
如果总数个数是偶数的话,按从小到大的顺序,取中间那两个数的平均数
(例:2、3、4、5、6、7
中位数:(4+5)/2=4.5)
在物价涨幅攀升的时候,适当提高企业退休人员养老金标准以及在职职工的工资,有利于保障他们的基本生活,并逐步提高生活质量.但是,只提供一个“平均数”让人心里总是有点不大踏实.一个平均数会掩盖很多的问题,不久前网友还创作了这样的打油诗:“张村有个张千万,隔壁九个穷光蛋,平均起来算一算,人人都是张百万.”对于这样的问题,不是“平均数”的错,也不是统计学的错,统计学中有现成解决的办法,就是计算“中位数”.所谓“中位数”,以一个51人的企业为例,把所有人员年收入从大到小排列,正中间的一位,即第26位的年收入就是这家企业年收入的中位数.打油诗里的“张村”个人财产中位数就是“零”.这个时候平均数不能说明的问题,中位数就说清楚了.
注意:是从小到大,或者从大到小,不是随意乱排.
中位数是一组数据的中间水平.
实例
第1组数:1、2、3、6、7的中位数是3.
原理:如果总数个数是奇数的话,按从小到大的顺序,取中间的那个数
第2组数:1、2、3、5的中位数是2.5.
原理:如果总数个数是偶数的话,按从小到大的顺序,取中间那两个数的平均数.(2+3)/2=2.5
第3组数:1、100、101、10000的中位数是100.5
注意:中位数
和数值的大小没有绝对的关系

Ⅷ 算法实现——X和Y的中位数问题

//VC2005 完成测试...
//O(log n)时间的算法,

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

bool IsMiddle( int a[], int b[], int max, int &i, int& upper, int& lower , int& result )
{
bool bResult = false;
if ( a[i] >= b[max-i-2] && a[i] <= b[max-i-1] )
{
result = a[i];
if ( i== max-1 )
{
result+=b[0];
}
else
{
result += ( a[i+1] < b[max-i-1] ) ? a[i+1] : b[max-i-1];
}

bResult = true;
}
else
{
if ( a[i] < b[max-i-2])
{
lower=i;
i=upper;
}
else
{
upper=i;
i=lower;
}
if ( a[i] >= b[max-i-2] && a[i] <= b[max-i-1] )
{
bResult = true;
}

}
result/=2;
return bResult;
}

int GetMiddle( int a1[], int a2[], int length )
{
int result=0;
int i1, i2, u1=length-1, l1=0, u2=length-1, l2=0;
int index=0;

while ( abs( l1-u1) >1 || abs( l2-u2) >1 )
{
i1 = ( l1 + u1) /2;

if ( abs( l1-u1) >1 )
{
if ( IsMiddle( a1, a2, length, i1, u1, l1, result ) )
{
break;
}
}
i2 = ( l2+u2) /2;
if ( abs( u2-l2) >1 )
{
if ( IsMiddle( a2, a1, length, i2, u2, l2 , result ) )
{
break;
}
}
}
return result;

}

int main()
{
string inFileName("c:\\inFile.txt");
string outFileName("c:\\outFile.txt");
ifstream inFile( inFileName.c_str(), ios_base::in);
if ( inFile.fail() )
{
cerr<<" Open file: " << inFileName << " failed! Exit...";
return -1;
}
ofstream outFile( outFileName.c_str(), ios_base::out | ios_base::trunc );
if ( outFile.fail() )
{
cerr<<" Open file:" << outFileName << " failed! Exit...";
inFile.close();
return -1;
}
int len =0;

while ( !(inFile>> len) )
{
inFile.clear();
inFile.get();
}
if ( len <=0 )
{
inFile.close();
outFile.close();
cerr <<"Array length less or equal than zero! Exit...";
return -1;
}

int *a1 = new int[len];
int *a2 = new int[len];
int number=0, i=0;

for ( i=0; i<len *2 && !inFile.eof(); i++ )
{
while ( !(inFile>>number) && !inFile.eof() );

if ( i <len )
{
a1[i]=number;
}
else
{
a2[i%len]=number;
}

}
inFile.close();

if ( i< 2*len )
{
cerr<<"Elements count not matched...";
outFile.close();
delete []a1;
delete []a2;
return -1;
}

int mid = GetMiddle( a1, a2, len);

printf( "中间数: %d\n", mid );

outFile<<mid;
outFile.close();
delete []a1;
delete []a2;
return 0;
}

Ⅸ 中位数如何计算

一、如何计算

(1)首先要先排序(从小到大),然后计算中位数的序号,分数据为奇数个与偶数个两种来求.
(2)中位数算出来可避免极端数据,代表着数据总体的中等情况。
(3)如果总数个数是奇数的话,按从小到大的顺序,取中间的那个数
(4)如果总数个数是偶数个的话,按从小到大的顺序,取中间那两个数的平均数

二、拓展资料:

中位数(又称中值,英语:Median),统计学中的专有名词,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,则中位数不唯一,通常取最中间的两个数值的平均数作为中位数。

一个数集中最多有一半的数值小于中位数,也最多有一半的数值大于中位数。如果大于和小于中位数的数值个数均少于一半,那麽数集中必有若干值等同于中位数。

设连续随机变量X的分布函数为F(X),那么满足条件P(X≤m)=F(m)=1/2的数称为X或分布F的中位数。

对于一组有限个数的数据来说,它们的中位数是这样的一种数:这群数据里的一半的数据比它大,而另外一半数据比它小。 计算有限个数的数据的中位数的方法是:把所有的同类数据按照大小的顺序排列。如果数据的个数是奇数,则中间那个数据就是这群数据的中位数;如果数据的个数是偶数,则中间那2个数据的算术平均值就是这群数据的中位数。

中位数中位数(Medians)统计学名词,是指将统计总体当中的各个变量值按大小顺序排列起来,形成一个数列,处于变量数列中间位置的变量值就称为中位数,用Me表示。当变量值的项数N为奇数时,处于中间位置的变量值即为中位数;当N为偶数时,中位数则为处于中间位置的2个变量值的平均数。

热点内容
压缩某个文件夹 发布:2024-11-15 09:03:11 浏览:891
网址能解压吗 发布:2024-11-15 08:54:09 浏览:933
python更改目录 发布:2024-11-15 08:41:08 浏览:265
服务器闪存可以装在一般电脑上吗 发布:2024-11-15 08:36:46 浏览:8
安卓手机怎么查询自己的路线轨迹 发布:2024-11-15 08:32:19 浏览:969
phpdatet 发布:2024-11-15 08:32:17 浏览:507
HDB3编译码实验 发布:2024-11-15 08:17:31 浏览:212
怪星球编程 发布:2024-11-15 08:15:55 浏览:844
慧编程价格 发布:2024-11-15 08:14:09 浏览:459
python多行注释的快捷键 发布:2024-11-15 08:09:14 浏览:957