`
wcdzxxgc
  • 浏览: 82431 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

K分位数问题

阅读更多
K分位数问题实现,对一个含有n个元素的集合来说,所谓的k分位数,就是能把已排序的集合分成k个大小相等的集合的“k-1个顺序统计量”。请给出一个能求出含有n个元素(无序)的集合的k分位数的O(nlgk)时间的算法。

以下为程序代码:

	public static void findKthQuantile(int[] src, int p, int r, int k){
		if (k==1)return;
		int med = ArrayOrder.randomSelect(src, p, r, ((r-p+1)/k)*(k/2));
		System.out.println(med);
		partition(src, med);
		findKthQuantile(src, p, p+((r-p+1)/k)*(k/2)-1, k/2);
		findKthQuantile(src, p+((r-p+1)/k)*(k/2), r, k-k/2);
	}
	
	public static void partition(int[] src, int m){
		int j = 0;
		int temp;
		for (int i = 0; i < src.length; i++) {
			if (src[i]<=m) {
				temp = src[i];
				src[i] = src[j];
				src[j++] = temp;
			}
		}
	}

 public static int randomSelect(int[] src, int p, int r, int i) {
    	if (p == r) return src[p];

    	int q = partitionRandom(src, p, r);
    	//int q = partition(src, p, r);
    	if ((q-p+1)==i) {
			return src[q];
		}
    	else if ((q-p+1)>i) {
			return randomSelect(src, p, q-1, i);
		}else {
			return randomSelect(src, q+1, r, i-q+p-1);
		}
	}

 public static int partitionRandom(int[]src, int p, int r){
    	int i = new Random().nextInt(r-p) + p;
    	int temp = src[r];
    	src[r] = src[i];
    	src[i] = temp;
    	return partition(src, p, r);
 }

0
0
分享到:
评论

相关推荐

    结合T2K,NOνA和ICAL @ INO增强ESSνSB的层次结构和八分位数敏感性

    另外,我们还结合了正在进行的实验T2K和NOνa的结果,并假设它们处于整个运行时间,并给出了ESSνSB+ ICAL @ INO + T2K +NOνA的组合灵敏度。 我们证明,虽然ESSνSB本身最多可以具有3σ的层级灵敏度,但所有实验的...

    基于分位数半径动态K-means的分布式负荷聚类算法.pdf

    #资源达人分享计划#

    tdigest:使用“ t-摘要”快速,准确的分位数

    t-Digest构造算法使用一维k-means聚类的变体来生成非常紧凑的数据结构,从而可以精确估计分位数。 这种t-Digest数据结构可用于估计分位数,计算其他等级统计数据,甚至可估计相关的度量值,例如修整均值。 为此目的...

    chisquare-quantile:卡方分布分位数函数

    分位数函数 分布。 随机变量的为 对于0 &lt;= p &lt; 1 ,其中k是自由度, P^{-1}是的。安装$ npm install distributions-chisquare-quantile 要在浏览器中使用,请使用 。用法 var quantile = require ( '...

    erlang-quantile:Erlang分布分位数函数

    分位数函数 分布。 随机变量的为 对于0 &lt;= p &lt; 1 ,其中k是形状参数, lambda是分布的速率参数。 P^{-1}是的。 安装 $ npm install distributions-erlang-quantile 要在浏览器中使用,请使用 。 用法 var...

    negative-binomial-quantile:负二项分布分位数函数

    分位数函数 分布。 随机变量的对于满足0 &lt;= k &lt;= 1的任何k返回x 成立,其中F是参数r和p的负二项式分布的累积分布函数(CDF),其中r是直到实验停止的失败次数, p是成功概率。安装$ npm install distributions...

    FIQT:FDR分位数逆变换

    FDR逆分位数转换用于基因组扫描摘要统计数据的快速准确的获胜者诅咒调整。 PLoS Genetics正在审查该方法,对获胜者的诅咒进行简单而准确的校正就可以预测在更大的基因组扫描中发现的信号 大纲 考虑到扫描统计数据...

    基于复杂网络的脑电信号分析 main.m

    基于复杂网络的脑电信号分析 将时间序列中值的范围...当x(t)与x(t+k)分别属于分位数和时,连接节点和的加权弧记为,其中t = 1,2,......,T,时间差k = 1,..., 。 此类资源为用matlab实现此类效果的主函数main.m文件

    8605 删数问题

    输出每组测试数据所得出的删k位数之后的最小数。 若输出的数首位是0,无须理会,0也直接输出即可。例如:024,就直接输出024,无须改成24。 输入样例 178543 4 87654321 2 123456789 1 254193 1 90249 2 0 ...

    QDigest:用于回答近似分位数查询的 QDigest 数据结构

    Q文摘用于回答近似分位数查询的 QDigest 数据结构。 尽管统计分析(如查找前 k 个访问过的 url)通常在服务器端完成(这很有意义),但这种特殊的数据结构在客户端也非常有用。 例如,如果您想查找用户在会话期间...

    t-digest:一种新的数据结构,用于精确在线累积基于等级的统计信息,例如分位数和修整后的均值

    t-digest构造算法使用一维k-means聚类的变体来生成非常紧凑的数据结构,从而可以精确估计分位数。 这种t-digest数据结构可用于估计分位数,计算其他等级统计数据,甚至可估计相关的度量值(例如修整均值)。 在T-...

    四分位数和百分位数计算:演示计算百分位数和其他基本统计数据的方法。-matlab开发

    脚本的第一行包含一个示例数据集。... 吝啬的1-sigma(标准偏差) 中位数第一个四分位数(第 25 个百分位数) 第二个四分位数(第 50 个百分位数) 第三四分位数(第 75 个百分位数) 第 k 个百分位智商标准识别码

    算法 删数问题

    输出每组测试数据所得出的删k位数之后的最小数。 若输出的数首位是0,无须理会,0也直接输出即可。例如:024,就直接输出024,无须改成24。 Sample Input 178543 4 87654321 2 123456789 1 254193 1 90249 2 0 ...

    删数问题(算法)

    输出每组测试数据所得出的删k位数之后的最小数。 若输出的数首位是0,无须理会,0也直接输出即可。例如:024,就直接输出024,无须改成24。 输入样例 178543 4 87654321 2 123456789 1 254193 1 90249 2 0 输出...

    【Go 语言入门 100 题】 003 个位数统计( 15 分) Go 语言 Golang.docx

    【Go 语言入门 100 题】 003 个位数统计( 15 分) Go 语言 Golang 【题解】【PTA 团体程序设计天梯赛】 L1-003 个位数统计 (15 分) Go 语言|Golang 输入格式: 每个输入包含 1 个测试用例,即一个不超过 1000 位的正...

    商业期刊分级:ABS,ABDC和JCR四分位数的比较分析并提出基于算法的分类-研究论文

    在衡量商业研究中的学术期刊时,存在多种期刊排名。 其中,ABS(AJG),ABDC和JCR四分位数在全球商学院中广泛使用。... 最后,利用K-means聚类算法,我们根据ABS,ABDC,JCR四分位数和TOPSIS分数将期刊分为四个序数类。

    曲线拟合计算(java实现)

    一个用于计算曲线和直线拟合的小软件,用java语言编写,做的不是太好,请大家不要责怪

    最小跷跷板模型的综合归一化组分析

    我们发现,在没有重新归一化组校正的情况下,预计大气角度将接近最大,对于某些非超对称情况,可能会收到显着校正,从而使其与第一个八分位数的当前最佳拟合值非常一致。 相比之下,在存在超对称性的情况下,对于所...

Global site tag (gtag.js) - Google Analytics