如何按值排序LevelDB
How to sort LevelDB by value
我使用leveldb来存储记录(键值),其中键是64位哈希值,值是双精度。打个比方:把64位哈希想象成一个客户的唯一ID,把双哈希想象成一个账户余额(即他们账户里有多少钱)。我想按帐户余额对数据库进行排序,并首先列出帐户余额最高的客户。但是,数据库无法装入内存,因此我必须使用其他方法对其进行排序,以便按帐户余额排序。
我正在考虑使用STXXL,但它要求我将数据库的副本复制到单个平面文件中,然后我可以使用STXXL进行外部排序(这会生成一堆较小的文件,对它们进行排序,然后将它们合并回另一个单个平面文件)。是否有更好的方法来对数据进行排序,或者我应该使用STXXL排序?
您有多少条目?是否可以使用无符号32位整数作为索引(将允许4,294,967,296个索引),用于确定如何对原始数组进行排序?
。创建32位索引对和帐户余额,对余额进行排序,然后使用32位索引计算原始数据的顺序。
相关文章:
- 二叉排序树无法编译
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- C++选择排序算法中的逻辑错误
- 使用C++程序合并排序没有得到正确的输出
- 计算排序向量的向量中唯一值的计数
- 排序算法c++
- 使用2个键的cpp-stl::优先级队列排序不正确
- 将结构向量排序为子组
- 在c++中尝试对对象数组进行排序时,出现std:bad_alloc错误
- 如何对点云数据进行排序
- 对字符串进行排序时,在c++中处理sort()
- 是否有类似std::lower_bound的函数,而不需要排序/分区输入
- 下面是排序算法O(n)吗
- std::sort()函数无法对向量的一部分进行排序
- shell排序中的交换和比较
- clang格式:禁用排序包含
- 显示错误输出的简单数组排序程序
- 为什么我的排序算法会更改数组值
- 试图在c++中对数字列表进行排序
- 如何按值排序LevelDB