问题标签 [bisect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在已打开文件的排序行中进行二分搜索(未加载到内存中)
我有一个多千兆字节的文本文件,数百万行已排序:
在不将整个文件加载到内存的情况下,如何通过二等分搜索来搜索是否存在一行?(可能在 O(log n) 的行数中)
Python库bisect.bisect_left
中的文件行中是否有类似的功能?f = open('file.txt', 'r')
该窗口最初是[a, b] = [0, file_size]
. 然后它会在文件中查找位置m=(a+b)/2
,查找下一\n
行,然后读取以下行l
。如果要搜索的模式小于或大于l
(按字典顺序),那么我们继续[m, b]
or [a, m]
。在我自己动手之前,这在 Python 中是否存在?