gpt4 book ai didi

c++ - 求一个GMP二分查找: How to compare two GMP mpz_t's using memcmp?

转载 作者:行者123 更新时间:2023-11-30 04:23:57 25 4
gpt4 key购买 nike

动机:我想使用 bsearch(二进制搜索)快速搜索 121 位非负整数的排序列表(它们都恰好有 121 位,尽管它们可能有前导零).这些整数太大而无法存储为单独的 int 等,因此我计划将它们制作成 mpz_t(使用 GMP )。

查看手册,GMP 没有等效的 bsearch(尽管如果我错了请纠正我),这导致我:

Question: Can we use memcmp or something similar to compare two non-negative integers with an equal number of bits stored as mpz_t? If so, what is the correct syntax?

如果这是可能的,搜索应该是非常有效的。

我也愿意接受以下替代建议:(a) 用于存储这些允许在 C++ 中快速搜索的 121 位整数的数据结构,(b) 搜索不使用 memcmp 的整数的方法

最佳答案

如果它们只是 121 位整数,为什么不使用 native 128 位 int 扩展:http://gcc.gnu.org/onlinedocs/gcc/_005f_005fint128.html ?这应该快得多,因为您可以避免任何“昂贵”的操作,如 memcpy,所有比较都应该是一条指令。

关于c++ - 求一个GMP二分查找: How to compare two GMP mpz_t's using memcmp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13080377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com