中位数算法比如、某商场服装部为了调动营业员的积极性,决定实行目标管理,即确定一个月的销售目标,根据目标完成的情况对营业员进行适当的奖惩.为了确定一个适当的目标,商场统计了30
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 15:12:32
中位数算法比如、某商场服装部为了调动营业员的积极性,决定实行目标管理,即确定一个月的销售目标,根据目标完成的情况对营业员进行适当的奖惩.为了确定一个适当的目标,商场统计了30
中位数算法
比如、某商场服装部为了调动营业员的积极性,决定实行目标管理,即确定一个月的销售目标,根据目标完成的情况对营业员进行适当的奖惩.为了确定一个适当的目标,商场统计了30位营业员在某月的销售额如下:(单位:万元)
17 18 16 13 24 15 28 26 18 19
22 17 16 19 32 30 16 14 15 26
15 32 23 17 15 15 28 28 16 19
求中位数是多少
算法是不是要把所有数据的频数与实数相乘,然后排序找出中间的数据的实数,即18万元
中位数算法比如、某商场服装部为了调动营业员的积极性,决定实行目标管理,即确定一个月的销售目标,根据目标完成的情况对营业员进行适当的奖惩.为了确定一个适当的目标,商场统计了30
楼上才是白痴,自己什么也不懂不要说的别人也是什么也不懂.
就是因为有了你们这种人,世界多花了巨额的代价来多做不必要的工作.
很明显楼主不是你这样的.
实数的排序算法复杂度是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
对啊
你是不是白痴啊???
虽然才看到,不过楼上实际上说的是快排吧……
很明显mergesort没有qsort模块快。
qsort模块算法导论、算法设计、高级本等书上都有。