Finding an appropriate data structure

前端 未结 3 840
离开以前
离开以前 2021-01-24 14:19

I have N keys.

I need to find a data structure which i can do with the following operations :

  1. building it in O(N)

  2. finding min in O(1)

相关标签:
3条回答
  • 2021-01-24 14:37

    When you say building in O(n), do you mean that addition has to be O(n), or that you have to build a collection of elements in O(n) such that addition has to be O(1)?

    You could augment pretty much any data structure with an extra reference to retrieve the minimal element in constant time.

    For #3, it sounds like you need to be able to find the median in O(lg n) and delete in O(1), or vice versa.

    For #4, you didn't specify the time complexity.

    To other posters - this is marked as homework. Please give hints rather than posting the answer.

    0 讨论(0)
  • 2021-01-24 14:50

    A popular question asked in Data Structures 1 exams/hws/tutorials. I'll try to give you some hints, if they don't suffice, comment, and I'll give you more hints.

    1. Remember that you don't have to use just one data structure, you can use several data structures.
    2. Recall the definition of a median: n/2 of the numbers are larger, and n/2 of the numbers are smaller
    3. What data structures do you know that are built in O(n), and complex operations on them are O(logn) or less? - Reread the tutorials slides on these data structures.
    4. It might be easier for you to solve 1+3 seperately from 1+2, and then think about merging them.
    0 讨论(0)
  • 2021-01-24 14:59

    Simple sorted Array would solve the problem for #2 #3 and #4. But the construction of it would take O(nn). However, there are no restrictions put on space complexity. I am thinking hard to use Hashing concept during the construction of the data structure which would bring down the order to O(n).

    Hope this helps. Will get back if I find a better solution

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