所以我不得不插入随机顺序N个元素成尺寸为N的数组,但我不知道有关该计划时间复杂度
程序的时间复杂度基本上是:
这是我的假设:正常插入N个数字当然严格为N,但随机位置的碰撞花费多少钱?对于每个n,其碰撞率增加为0,1/n,2/n .... n-1/n,因此预期的插入尝试次数为1,2,3,...,n-1,这是O (n),所以总的时间复杂度将是O(n^2),那么这是平均成本?但哇这真的很糟糕,我说得对吗?
那么,如果我做线性搜索而不是继续尝试生成随机数,会发生什么?它的最坏的情况显然会为O(n^2>,但我不知道如何分析它的平均的情况下,依赖于平均输入分配?
第四行应该读'array [index] = i'我猜? – vib