Time complexity of set in Java

后端 未结 1 2037
余生分开走
余生分开走 2021-02-12 12:46

Can someone tell me the time complexity of the below code?

a is an array of int.

Set set = new HashSet();
for          


        
1条回答
  •  广开言路
    2021-02-12 13:37

    i believe its O(n) because you loop over the array, and contains and add should be constant time because its a hash based set. If it were not hash based and required iteration over the entire set to do lookups, the upper bound would be n^2.

    Integers are immutable, so the space complexity would be 2n, which I believe simplifies to just n, since constants don't matter.

    If you had objects in the array and set, then you would have 2n references and n objects, so you are at 3n, which is still linear (times a constant) space constraints.

    EDIT-- yep "This class offers constant time performance for the basic operations (add, remove, contains and size), assuming the hash function disperses the elements properly among the buckets."

    see here.

    0 讨论(0)
提交回复
热议问题