## A C++11 implementation of the B-Tree part of "The Case for Learned Index Structures" A research **proof of concept** that implements the B-Tree section of [The Case for Learned Index Structures](https://arxiv.org/pdf/1712.01208.pdf) paper in C++. The general design is to have a single lookup structure that you can parameterize with a KeyType and a ValueType, and an overflow list that keeps new inserts until you retrain. There is a value in the constructor of the RMI that triggers a retrain when the overflow array reaches a certain size. The basic API: ```c++ // [first/second]StageParams are network parameters int maxAllowedError = 256; int maxBufferBeforeRetrain = 10001; auto modelIndex = RecursiveModelIndex recursiveModelIndex(firstStageParams, secondStageParams, maxAllowedError, maxBufferBeforeRetrain); for (int ii = 0; ii < 10000; ++ii) { modelIndex.insert(ii, ii * 2); } // Since we still have one more insert before retraining, retrain before searching... modelIndex.train(); auto result = modelIndex.find(5); if (result) { std::cout << "Yay! We got: " << result.get().first << ", " << result.get().second << std::endl; } else { std::cout << "Value not found." << std::endl; // This shouldn't happen in the above usage... } ``` See [src/main.cpp](src/main.cpp) for a usage example where it stores scaled log normal data. ### Dependencies - [nn_cpp](https://github.com/bcaine/nn_cpp) - Eigen based minimalistic C++ Neural Network library - [cpp-btree](https://code.google.com/archive/p/cpp-btree/) - A fast C++ implementation of a B+ Tree ### TODO: - Lots of code cleanup - Profiling of where the slowdowns are. On small tests, the cpp_btree lib beats it by 10-100x - Eigen::TensorFixed in nn_cpp would definitel
2021-09-03 13:57:46 402KB C++ B-Tree
1
B+树,哈希表等JAVA版本的JAR包。里面有源码,还有例子,API函数等
2021-08-31 02:29:42 244KB B+树 哈希表 jar包
1
企业文化理论与实践(李树山课件B版)(ppt 40页).ppt
2021-08-16 14:02:24 390KB 培训
第41课 蜗牛与葡萄树(2021.08.13)B.pdf
2021-08-15 01:53:51 816KB CSP-J 信奥 C++语言
B*树实现,未经过最为严格的暴力测试
2021-08-04 09:04:11 11KB B*树
1
BPlusTree B+索引树
2021-07-14 17:03:15 6KB Java
1
该程序使用kd-B Tree(结合了kd-trees和B-trees的特性)来存储商家。 因为商家列表理论上是无限的,更简单的 kd-tree 是不可接受的,因为它不允许动态插入。 我还修改了 kd-B 树,以允许我们在查询时按类别进行过滤。 如果有太多条目无法放入内存,则可以轻松地将树更改为使用辅助存储。 我选择了 Ruby,以便可以轻松地将树包含到 RoR 或 Sinatra 项目中。 我还包括 rspec 测试以确保树正常运行。 参考 Robinson, John T.“KDB 树:大型多维动态索引的搜索结构”,卡内基梅隆大学,匹兹堡,1981 年。
2021-07-12 14:04:45 228KB Ruby
1
B+树算法的Java实现方法研究.pdf
2021-07-02 22:03:10 286KB Java 开发技术 论文期刊 专业指导
B树为基本数据结构实现图书的借阅、归还、查询及搜索功能
2021-06-27 18:20:06 17KB C语言 B树 图书管理系统
1
基于B树的图书管理系统 大学数据结构课设作业
2021-06-27 17:59:13 6KB 数据结构课设 B树 图书管理系统
1