fractional cascading

http://en.wikipedia.org/wiki/Fractional_cascading

加速binary search的方法。

用空间换时间。

假如同时有多个数组,然后在其中找某个数,一般做法是每个数组都查找过去。这样算法复杂度是 O(k log(n/k)),

As a simple example of fractional cascading, consider the following problem. We are given as input a collection of k ordered lists Li of real numbers, such that the total length Σ|Li| of all lists is n, and must process them so that we can perform binary searches for a query value q in each of the k lists. For instance, with k = 4 and n = 17,

L1 = 2.4, 6.4, 6.5, 8.0, 9.3
L2 = 2.3, 2.5, 2.6
L3 = 1.3, 4.4, 6.2, 6.6
L4 = 1.1, 3.5, 4.6, 7.9, 8.1

另外一种方法如下:

将这些数组合并到一个大数组,每个数跟着这个数在原来每个数组中的位置。

we may merge all the k lists into a single big list L, and associate with each item x of L a list of the results of searching for x in each of the smaller lists Li. If we describe an element of this merged list as x[a,b,c,d] where x is the numerical value and a, b, c, and d are the positions (the first number has position 0) of the next element at least as large as x in each of the original input lists (or the position after the end of the list if no such element exists), then we would have

L = 1.1[0,0,0,0], 1.3[0,0,0,1], 2.3[0,0,1,1], 2.4[0,1,1,1], 2.5[1,1,1,1], 2.6[1,2,1,1],

3.5[1,3,1,1], 4.4[1,3,1,2], 4.6[1,3,2,2], 6.2[1,3,2,3], 6.4[1,3,3,3], 6.5[2,3,3,3],
6.6[3,3,3,3], 7.9[3,3,4,3], 8.0[3,3,4,4], 8.1[4,3,4,4], 9.3[4,3,4,5]
这样查找一个数,只要在L上查找,就能得到该数应该在每个数组中的位置。

fractional cascading:

上一行数组是下一行数组每隔1个取一个数在加上本行数组。

M1 = 2.4[0, 1], 2.5[1, 1], 3.5[1, 3], 6.4[1, 5], 6.5[2, 5], 7.9[3, 5], 8[3, 6], 9.3[4, 6]
M2 = 2.3[0, 1], 2.5[1, 1], 2.6[2, 1], 3.5[3, 1], 6.2[3, 3], 7.9[3, 5]
M3 = 1.3[0, 1], 3.5[1, 1], 4.4[1, 2], 6.2[2, 3], 6.6[3, 3], 7.9[4, 3]
M4 = 1.1[0, 0], 3.5[1, 0], 4.6[2, 0], 7.9[3, 0], 8.1[4, 0]

fractional cascading相关推荐

  1. P6466-分散层叠算法(Fractional Cascading)【模板】

    正题 题目链接:https://www.luogu.com.cn/problem/P6466 题目大意 给出kkk个长度为nnn的有序序列,qqq次询问给出xxx,求所有序列中xxx的后继的异或和. ...

  2. 1人15篇入选?华人论文知多少?深度分析ICCV2019论文录取背后的那些事儿!

    来源:学术头条 本文约3260字,建议阅读5分钟. 本文从多方面为你详解ICCV2019. 你要问,有什么能把全球人工智能圈子里的科技巨头公司和技术大牛们聚集到一起? 自然是AI顶会啦! 本周日,IC ...

  3. 分形树Fractal tree介绍——具体如何结合TokuDB还没有太懂,先记住其和LSM都是一样的适合写密集...

    在目前的Mysql数据库中,使用最广泛的是innodb存储引擎.innodb确实是个很不错的存储引擎,就连高性能Mysql里都说了,如果不是有什么很特别的要求,innodb就是最好的选择.当然,这偏文 ...

  4. tokudb 分形树_分形树Fractal tree介绍——具体如何结合TokuDB还没有太懂,先记住其和LSM都是一样的适合写密集...

    在目前的Mysql数据库中,使用最广泛的是innodb存储引擎.innodb确实是个很不错的存储引擎,就连高性能Mysql里都说了,如果不是有什么很特别的要求,innodb就是最好的选择.当然,这偏文 ...

  5. 解读现代存储系统背后的经典算法

    作者|Alex Petrov 译者|盖磊 编辑 | Debra AI 前线导读:本文详细剖析了两种被大多数现代数据库使用的存储系统设计方法,即针对读操作优化的 B 树,以及针对写操作优化的 LSM 树 ...

  6. Mysql存储引擎之TokuDB以及它的数据结构Fractal tree(分形树)

    在目前的Mysql数据库中,使用最广泛的是innodb存储引擎.innodb确实是个很不错的存储引擎,就连高性能Mysql里都说了,如果不是有什么很特别的要求,innodb就是最好的选择.当然,这偏文 ...

  7. centos+7.2+linux版本,在Linux Centos 7.2 上安装指定版本Docker。

    相关资料链接: 先清空下"历史" yum remove docker \ docker-common \ docker-selinux \ docker-engine 安装必要的包 ...

  8. BST Application

    1.range query(范围查询) enumerating 是指将范围中的元素列举出来. 2D的范围查序: 关键是做出一张下图所示的表出来,预处理!(对一个需要经常使用的数据做预处理可以加快后续速 ...

  9. Binary Search(二分搜索)

    转载请注明出处 leonchen1024.com/2018/08/14/- 二分搜索(binary search),也叫做 折半搜索(half-interval search),对数搜索(logari ...

  10. 清华计算几何大作业思路分析和代码实现

    清华计算几何大作业思路分析和代码实现 1. 计算几何之缘 2. 前置知识 3. 作业列表 4. 作业难度分析和选取建议 4.1 初阶(新手村之旅) 4.2 高阶(大师剑之旅) 4.3 终阶(折磨之旅) ...

最新文章

  1. JESD204B与LVDS接口并行 管线式ADC延迟问题分析及解答
  2. Django、Flask、Tornado的比较
  3. 垃圾邮件分类快速理解机器学习中的朴素贝叶斯(Naive Bayes)
  4. rabbitmq管理界面的使用
  5. 容器的访问元素的成员函数(front,back,下标和at)返回的都是引用,如果顺序容器是const的对象,那么返回的是const的引用
  6. 云时代企业如何保护共享文档数据安全?
  7. 【codevs1250】Fibonacci数列,矩阵乘法入门
  8. iOS 地图移动中心点获取
  9. 强化学习:基于MDP的经典RL方法 (基于南大俞扬博士演讲的少量修改和补充)
  10. 创建一个移动应用的终极指导
  11. SIM卡在手机中的主要作用
  12. python 四维数据怎么看性别_四维b超数据怎么看性别
  13. 三角测量的一些基础理论
  14. Android -- 在线播放歌曲 1 -- 搜索歌曲
  15. 21闭关修炼 习题分册
  16. php微信公众号发送红包功能
  17. python下载电影_python下载电影
  18. openGauss杭州用户组正式成立啦
  19. 计划任务以及日志管理
  20. spring_如何在Spring Boot App中集成H2数据库

热门文章

  1. ecshop模板支持html,免费ecshop响应式设计手机wap自适应dossy整站模板
  2. 【PB】数据窗口的修改属性
  3. 【MySQL从入门到精通】【高级篇】(二十五)EXPLAIN中ref、rows、filtered、Extra字段的剖析
  4. HDU 6208 The Dominator of Strings [AC自动机]
  5. 小象学院0基础python视频_[大数据] 小象学院大数据全套视频教程
  6. OPENWRT-LUCI开发总结-LUCI开发过程中的小技巧
  7. 未来十年最紧缺的职业
  8. HDU - 4567 Brilliant Programmers Show 2013长沙邀请赛
  9. Python的文献计量分析流程实现--含代码
  10. 详解WSAEventSelect网络模型