只是一个简单的问题:
如果我有一个线性搜索算法(一旦达到某个条件就会经历每个元素),如何计算n = 500的平均大小写复杂度?最坏的情况和最好的情况很容易。
答案 0 :(得分:3)
平均情况同样简单:只要您找到的项目是唯一的,平均而言您将不得不在列表的中途看到+ 0.5。
假设您只查看列表中的每个项目一次。当您查找第一个项目时,您将需要检查1个项目。当您查找第二个项目时,您将需要检查2个项目,依此类推。检查总数为
1 + 2 + 3 + ... + 500 = 125250
因此,通过500次查找,您将检查总共125250个项目。平均而言,每次查询检查250.5次。
如果您的查找模式不一致,那么这会使您的平均情况出现偏差(例如,如果您更频繁地查看列表开头的项目,或者重复某些项目并找到其中任何一项就足够了)
答案 1 :(得分:0)
线性搜索算法的平均情况复杂度为n + 2 其中n是列表中元素的数量。