繁体   English   中英

首选哪种搜索算法?

[英]Which search algorithm to prefer?

二进制搜索算法的O值大为O(log n),顺序搜索算法的O值大为O(n)。 但是,在进行二分查找之前,我们需要一种排序算法,并且排序算法的最佳大O值为O(n.log n)。 因此,有效地,二进制搜索的大O值为O(n.log n),它大于顺序搜索的O值。 那么,哪种算法更适合搜索算法?

实际上,这取决于您搜索的频率。 如果必须搜索数百万次,则即使您必须支付排序的前期费用,也要进行二进制搜索。 这取决于您的用例。 通过二进制搜索,您还可以确保插入内容使列表保持排序,因此插入速度也会变慢。

如果您需要执行大量插入操作,并且搜索次数很少,则顺序搜索可能会更快。

请记住,在处理大量数据之前,其中很多甚至都不会被注意到。

实际上,在优化应用程序中很少使用顺序搜索。 因为通常比使用O(n)中提供频繁搜索的数据结构更好地找到合适的数据结构。

例如, 红黑树是一种特殊的平衡二叉树,它在O(log n)中全部提供插入/删除/搜索。 因此,创建,填写和搜索速度很快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM