我正在读考试,我似乎无法理解数据结构和算法复杂性即我知道链表有insert
,get
,delete
方法实现,但我无法理解的是0(n)
或0(1)
。
我知道n
表示列表大小,1
表示线性,但我不理解0
或O
。如果你能解释复杂性是什么以及它是如何工作的,我将不胜感激。所以,如果你能帮助我。谢谢。
答案 0 :(得分:1)
O(n)或O(1)代表复杂性的顺序。 例如,如果要搜索长度为n的数组中的元素,并且您正在使用线性搜索(意味着逐个从第一个元素开始搜索),那么显然搜索时间取决于数组的大小。因此线性搜索具有O(n)复杂度。 而采用在hashmap中搜索的示例。在散列映射中,插入和搜索是基于散列算法完成的。搜索所花费的每个搜索时间的均值将不依赖于散列映射的大小,但是将是散列算法所花费的恒定时间。所以这将是O(1)的复杂性。 希望这有助于理解。