所以我不得不插入隨機順序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