2019独角兽企业重金招聘Python工程师标准>>>

求带权中位数的Select算法

设有一个数组a,元素类型为T,T的定义如下:
struct T {
int x; // 位置
int w; //权重

}

最简单的方法就是,以x字段为标准排序,排序完扫描一次就得到答案;
这里要讲的是采用快排里面的Select算法。

原问题为:给定一个数组,
首先,我们随便找个元素作为分割元,譬如说a[1],将a分割成3部分:子数组P,a[1],子数组R。在分割的过程,我们可以顺便计算出P的权重和 wp与 R的权重和 wr。再设a[1]的权重为 w1,a[1...n]的权重和为W。

首先我们要看看a[1]有没有可能就是我们要找的人,如果wp < W / 2 且 wp + w1 >= W/2,那么恭喜你,a[1]就是你要找的人。

否则,我们开始分情况:

(1)如果 wp < W / 2 且 wp + w1 < W / 2,也就是说,我们要找的人在R里面。目标权重变化一下,问题就转化为子问题了。
(2)如果 wp > W / 2,也就说,我们要找的人在P里面。目标权重变化一下,问题就转化为子问题了。

搞定了!

转载于:https://my.oschina.net/mustang/blog/58056

求带权中位数的Select算法相关推荐

  1. 邮局选址问题-带权中位数

    一.运行环境: Win7.MyEclipse.JDK8 二.运行过程说明: 数据文件格式:第一行是居民数量n的取值,第2~n+1行是每家的位置及权重. 输入格式:输入测试数据集文件编号,范围:1~6. ...

  2. 带权中位数-算法导论第三版第九章思考题9-2

    带权中位数-算法导论第三版第九章思考题9-2 b 时间复杂度O(nlgn) float find_median_with_weights_b(float *array,int length) {qui ...

  3. 二维邮局选址问题-带权中位数

    算法设计练习作业,邮局选址问题,将自己写的分享,有问题请指正,希望共同学习. 关于邮局选址问题的理论知识就不赘述了,网上有讲解的. #include <iostream> #include ...

  4. YL杯超级篮球赛_纪中1325_带权中位数

    Description 一年一度的高一YL杯超级篮球赛开赛了.当然,所谓超级,意思是参赛人数可能多余5人.小三对这项篮球非常感兴趣,所以一场都没有落下.每个中午都准时守侯在篮球场看比赛.经过一个星期的 ...

  5. 中位数及带权中位数问题(转)

    先从一到简单的题看起: 士兵站队问题 在一个划分成网格的操场上,n个士兵散乱地站在网格点上.网格点由整数坐标(x,y)表示.士兵们可以沿网格边上.下.左.右移动一步,但在同一时刻任一网格点上只能有一名 ...

  6. 带权图的最短路径算法(Dijkstra)实现

    一,介绍 本文实现带权图的最短路径算法.给定图中一个顶点,求解该顶点到图中所有其他顶点的最短路径 以及 最短路径的长度.在决定写这篇文章之前,在网上找了很多关于Dijkstra算法实现,但大部分是不带 ...

  7. 中位数及带权中位数问题

    信息学竞赛总是时不时与数学产生微妙的关系,中位数及带权中位数问题有时常常成为解题的关键,今日有时间,所以梳理一下. 先从一到简单的题看起: 士兵站队问题 在一个划分成网格的操场上,n个士兵散乱地站在网 ...

  8. 创建哈夫曼树并求带权路径长度

    创建哈夫曼树并求带权路径长度 [问题描述]根据给定的权重,构造哈夫曼树,输出其带权路径长度. [输入形式]输入权重,空格作为分隔,回车结束,权重个数小于10. [输出形式]哈夫曼树的带权路径长度. [ ...

  9. 学校选址_洛谷U3451_带权中位数

    题目描述 在一条大路一旁有许多栋楼,每栋楼里有许多小学生(哈哈哈一波小学生来袭!).但是这条路上没有小学!!!!所以唯恐世界不乱的牛A打算在路上(汽车什么的都不敢来这个小学生云集的地方咯,所以不用担心 ...

最新文章

  1. python计算tfidf sklearn计算
  2. lua 获取时分秒_PMON学用命令
  3. Mybatis 中使用CDATA
  4. 修改属性页CPropertyPage标题
  5. 高性能MySQL——查询性能优化
  6. 【Eclipse 插件】Implementors
  7. 从自媒体引流到私域池
  8. [转载] 05 Numpy排序搜索计数及集合操作
  9. c语言dummy作为参数,C语言中的dummy函数
  10. 关于IEnumeratorT泛型枚举器 和 IEnumerableT
  11. 腾讯云CDN加速产品介绍第二章-CDN系统架构
  12. 常见js针对浏览器之间的兼容问题
  13. 2019CBA全明星周末举行正赛 南方明星队获胜
  14. QGIS插件开发-执法业务计算
  15. 波士顿房价预测python_多元线性回归—波士顿房价预测(版本一)
  16. Linux系统安装开源版PyMOL
  17. 硬件基础:MOS管工作区间及开通过程分析——以N沟道增强型MOS为例
  18. 股票的发行原理是什么?
  19. 网络安全:网络攻击原理与方法.
  20. 二论骇客文化,个人英雄主义的终结,团队精神登上舞台

热门文章

  1. SpringCloud Hoxton版微服务- Gateway网关
  2. Spring Cloud微服务再谈微服务架构(七)
  3. c# 智能升级程序代码(1)
  4. 通过RSS订阅、邮件转发自动同步多个Blog
  5. kloxo 一行安装 -cnblogs
  6. Swift中文教程(九) 类与结构
  7. Linux: find和xargs用法整理
  8. mysql 主从复制结构配置
  9. 动态规划——最长公共子序列问题(LCS)
  10. Kafka—topic的查询和创建