Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

DSA 线性查找时间复杂度


请查看 此页面 以获取有关时间复杂度的常规解释。


线性查找时间复杂度

有关时间复杂度的详细说明,请访问 此页面

有关插入排序时间复杂度的更全面和详细的解释,请访问 此页面

线性查找 将每个值与其要查找的值进行比较。如果找到该值,则返回索引,如果未找到,则返回 -1。

为了找到线性查找的时间复杂度,让我们看看是否可以找出在包含 \(n\) 个值的数组中查找一个值需要多少次比较操作。

最佳情况是如果我们正在查找的值是数组中的第一个值。在这种情况下,只需要进行一次比较,时间复杂度为 \(O(1)\)。

最坏情况是如果遍历整个数组而没有找到目标值。在这种情况下,数组中的所有值都与目标值进行比较,时间复杂度为 \(O(n)\)。

平均情况并不容易确定。找到目标值的可能性是多少?这取决于数组中的值,对吧?但是,如果我们假设数组中的值只有一个等于目标值,并且该值的的位置可以在任何地方,那么线性查找所需的平均时间是最坏情况所需时间的一半。

线性查找的时间复杂度为 \(O(n)\)。

如果我们绘制线性查找在包含 \(n\) 个值的数组中查找一个值所需的时间,我们将得到此图

Time Complexity

线性查找模拟

针对数组中不同数量的值运行模拟,并查看线性查找在包含 \(n\) 个值的数组中查找一个值需要多少次比较。

{{ this.userX }}

操作:{{ operations }}
未找到!

 

如您在运行线性查找模拟时所见,如果快速找到该值,则搜索需要少量比较,但如果未找到我们正在查找的值,则会执行最大次数的比较。



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.