gpt4 book ai didi

java - 在行大小不固定的 UTF-8 编码文本文件上使用 Java 进行二进制搜索

转载 作者:行者123 更新时间:2023-11-29 05:49:51 25 4
gpt4 key购买 nike

我有一个制表符分隔的 UTF-8 文件,其中记录按一个字段排序。但是,线的大小不是固定的,所以不能直接跳到一个特定的位置。如何对此执行二进制搜索?

例子:

第 1 行:Alfred Brendel/m/011hww/m/0crsgs6,/m/0crvt9h,/m/0cs5n_1,/m/0crtj4t,/m/0crwpnw,/m/0cr_n2s,/m/0crsgyh

第 2 行:Rupert Sheldrake/m/011ybj/m/0crtszs

最佳答案

您知道 hole 文件包含的字节数。让我们说 n-> 搜索区间 [l, r] with l=0, r=n.

  • 估计搜索间隔的中间值 m=(r-l)/2。在此位置,向左移动尽可能多的字节(向右也可以),直到找到制表符(字节==9 (9 是制表符的 ASCII 和 UTF8 代码))[lets将此位置命名为 mReal ] 并解码从该选项卡开始的一行。

  • 确定您是否必须采用前“一半”(=> 新搜索间隔是 [l, mReal])或第二个“一半”(=> 新搜索-下一个搜索步骤的间隔是[mReal, r])。

关于java - 在行大小不固定的 UTF-8 编码文本文件上使用 Java 进行二进制搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14362394/

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