C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在C语言中运行二进制搜索的最快方法?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,假设我想在文件中找到特定的单词或数字.内容按排序顺序(显然).由于我想在文件上运行二进制搜索,将整个文件复制到一个数组然后运行二进制搜索似乎真的浪费时间…我已经有效地将它变成了线性时间算法,因为我’在我运行搜索之前,我必须花费O(n)时间复制该darn文件.

有更快的方法吗?是否有类似lseek的东西可以使用行而不是字节?

如果没有,我最好只做一次线性搜索(假设我只在整个程序期间运行一次搜索)?

解决方法

你不能直线寻求.一旦你想到这一点就很明显了.

但是你可以对文本文件进行一种二进制搜索.

你做的是:

>统计文件获取长度或寻找结束并获得位置.>内存映射文件.(我认为这是最好的,但如果必须的话,你可以使用lseek并阅读.)>寻找文件的中间部分,减去平均线长.猜猜看.>向前扫描换行,除非您在0位置.>阅读你的专栏并进行比较.>重复1/4或3 / 4,1 / 8,1 / 16等.

大佬总结

以上是大佬教程为你收集整理的在C语言中运行二进制搜索的最快方法?全部内容,希望文章能够帮你解决在C语言中运行二进制搜索的最快方法?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。