H指数和G指数的Java实现

H指数

h指数(也叫h-index )是一个混合量化指标,最初是由美国加利福尼亚大学圣地亚哥分校的物理学家乔治赫希,他可以简单的解读为有 H 篇论文被引用了不少于 H 次,H指数主要衡量了论文的数量和影响力,因此H指数也能从一定水平上象。

private int hIndex(int[] citations) {// 排序(注意这里是升序排序,因此下面需要倒序扫描)Arrays.sort(citations);// 线性扫描找出最大的 iint i = 0;while (i < citations.length && citations[citations.length - 1 - i] > i) {i++;}return i;
}

G指数

g指数是h指数的衍生指数,主要是弥补h指数不能很好反应高被引论文的缺陷提出的, g指数定义为:论文按被引次数排序后相对排前的累积被引至少g2次的最大论文序次g,亦即第(g+1)序次论文对应的累积引文数将小于(g+1)2。
2006年, Egghe提出了g指数, g指数定义为:论文按被引次数排序后相对排前的累积被引至少g2次的最大论文序次g,亦即第(g+1)序次论文对应的累积引文数将小于(g+1)2。从定义可以看出,g≥h,而按被引量排序靠前的文章的被引次数越大,g指数越大。
2006年,Egghe在分析h指数评价效果时,提出了一种基于学者以往贡献的g指数———将论文按被引次数由高自低排序,将序号平方,被引次数按序号层层累加,当序号平方等于累计被引次数时,该序号则为g指数。 如序号平方不是恰好等于而是小于对应的累计被引次数,则最接近累计被引次数的序号即为g指数。和h值一样,g值越大说明该学者的学术影响力越大、学术成就越高,通常作为h指数的补充或提高。

private int gIndex(int[] citations) {// 先升序排序Arrays.sort(citations);// 再倒转变成降序ArrayUtils.reverse(citations);// 累计被引次数int cumulative = 0;// 差值long difference = 0;int gIndex = 0;for (int i = 0; i < citations.length; i++) {cumulative += citations[i];long square = (citations.length - i) * (citations.length - i);// 如果序号平方正好等于累计被引数,则该序号是g指数if (cumulative == square) {return citations.length - i;}// 如果一直没有等于的情况,最接近累计被引次数的序号即为g指数// 大于的情况不计算if (square < cumulative) {if (difference == 0) {difference = cumulative - square;gIndex = citations.length - i;}if (cumulative - square < difference) {gIndex = citations.length - i;}}}return gIndex;
}

H指数和G指数的Java实现相关推荐

  1. 干货 | 科研人的KPI怎么算,H指数和G指数是什么

    Hello,大家好. 这里是壹脑云科研圈,我是Uka- 说起KPI大家想必都不陌生吧,不管是上班的还是在读的小伙伴或多或少都有所了解--KPI是评价员工工作表现的重要可视化指标,是企业绩效管理的基础. ...

  2. linux之sed命令n,N,d,D,p,P,h,H,g,G,x解析

    前言 sed执行模板 = sed '模式{命令1;命令2}' 文件,即逐行读入模式空间,执行命令,最后输出打印出来. sed的语法格式: sed [option] 'pattern{sed-comma ...

  3. sed之G、H、g、h使用

    前言 作者不善言谈,如有错误请指正!!! 转载请注明出处!!! sed之G.H.g.h使用 什么是sed? sed是面向流的行编辑器,所谓面向流,是指接受标准输入的输入,输出内容到标准输出上. sed ...

  4. linux sed 空间模式,整理:SED的模式空间与缓冲区及n,N,d,D,p,P,h,H,g,G,x解析...

    sed命令n,N,d,D,p,P,h,H,g,G,x解析 1.sed执行模板=sed '模式{命令1;命令2}' 即逐行读入模式空间,执行命令,最后输出打印出来 2.p打印当前模式空间所有内容,追加到 ...

  5. 物联网平台 源码 智慧农业物联网平台 ,支持mqtt,h ttp,coap协议 java+postgresql,支持集群

    物联网平台 源码 智慧农业物联网平台 ,支持mqtt,h ttp,coap协议 java+postgresql,支持集群. 支持萤石云摄像头接入,云台控制,支持nbiot,lora物联网平台,5g物联 ...

  6. java中怎么实现指数幂,java中幂指数值的运算代码解析

    说到幂指数的运算我们就会用到Math.pow(doublea,doubleb),返回的结果是a的b次方. 在Java中,当我们计算2的n次方时,可以直接用Math.pow来计算.非常方便. 但是,已知 ...

  7. sed高级命令--n、N、d、D、h、H、g、G、x、b

    sed sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作 action: (1)p:打印匹配到的行 (2)d:删除匹配到的 ...

  8. 格力与奥克斯空调在京东的选购指数(java爬虫案例-代码实现)

    要么不做,要做就做完 此项目目录结构 项目分析 环境准备 开发准备 数据库表 添加依赖 添加配置文件 编写pojo 编写dao 编写service接口 service实现类 StringBoot引导类 ...

  9. 美股中的道琼斯指数和纳斯达克指数

    纳斯达克指数是由纳斯达克(NASDAQ)交易的以高科技为主的股票计算的.纳斯达克的上市公司涵盖所有新技术行业,包括软件和计算机.电信.生物技术.零售和批发贸易等. 道·琼斯借数,即道·琼斯股票价格平均 ...

  10. 格力与奥克斯空调在京东的选购指数(java爬虫案例-闲扯)

    这前段时间有一件"格力举报奥克斯空调质量"的事情,当时看一下京东这两家店铺,感觉很有意思,看着就觉得奥克斯空调选购指 数高很多.所以,就尝试爬一下看看,练手小demo,这篇文章,是 ...

最新文章

  1. 将时间保存到pb_Nature Geoscience:沉积岩容矿Cu-Pb-Zn矿床受控于克拉通边缘稳定性...
  2. sql datetime比较大小_SQL做题小技巧
  3. Android基础教程(三)之------ Activity 窗口切换
  4. WordPress实践:上传文件时提示“缺少临时文件夹”
  5. quartus仿真27:JK触发器构成的同步二进制加法计数器(分析)
  6. 开源跨平台GUI库Fltk在Deepin Linux下的使用
  7. BIOS之内存控制器设置以及内存电路接口分析
  8. 图片格式转换怎么做?教你几招搞定图片格式转换
  9. 日常网页bug页面收集
  10. 删除Linux中的.swp文件
  11. 武汉大学java 期末考试试题_武汉大学java期末考试试题和答案
  12. 信息安全三要素(CIA):
  13. 联想新款小新 Pro 27 一体机 评测 怎么样
  14. AVX-512指令_mm512_shuffle_epi8分析
  15. 【VUE】2、VUE-CREATE创建第一个VUE项目
  16. 虚拟机VMware安Mac OS时没有Apple mac选项
  17. 实验6 蓝桥ROS1使用moveit 适用kinetic/melodic/noetic
  18. unity 之 Particle 一
  19. Windows在与time.windows.com进行同步时出错。
  20. 基于springboot+vue(thymeleaf)+mysql下的自创音乐网站平台--CrushMusic(开发日志七)

热门文章

  1. android七牛云存储,使用七牛云存储上传android本地视频并播放
  2. (1170, BLOB/TEXT column 'description' used in key specification without a key length)
  3. 笔记本电脑一直卡在logo界面重启转圈,进U盘PE黑屏
  4. openpyxl中遇到TypeError: ‘generator‘ object is not subscriptable的问题和解决方案
  5. 三十岁那年,我的梦想是年薪十万
  6. cvpr 深度估计_近两年 CVPR ICCV ECCV 相机位姿估计、视觉定位、SLAM相关论文汇总...
  7. #define宏定义(每天一个小虾米)
  8. VA_LIST可变参数列表的使用方法与原理
  9. 告别奇虎360、依图科技,再谋他途!依图CTO颜水成被曝离职!
  10. 用Visio画UML顺序图