in reply to Re: retrieve next avaiable element in sorted hash
in thread retrieve next avaiable element in sorted hash

thelenm,
I was thinking about adding a new method to Tie::Hash::Sorted after reading this thread as it already stores the hash keys in a sorted array. A person may want to indicate where in the sorted hash they wanted to start from on a case by case basis. After giving it some thought, it won't help here.

The problem is that what is being asked for is not they next key, but the next key with a defined value. Even with the binary search, you still need to iterate after you find your target until you find a defined key value. My idea is a variation that should get the job done.

Cheers - L~R

  • Comment on Re: Re: retrieve next avaiable element in sorted hash

Replies are listed 'Best First'.
Re: Re: Re: retrieve next avaiable element in sorted hash
by demerphq (Chancellor) on Oct 06, 2003 at 23:54 UTC

    Even with the binary search, you still need to iterate after you find your target until you find a defined key.

    Not so. Its trivial to adjust binary search to handle "find the node immediately preceding/following my value or the value itself" searches. If you already know one endpoint linear search makes sense, as does using it as the left boundary and range searching the appropriate side.


    ---
    demerphq

      First they ignore you, then they laugh at you, then they fight you, then you win.
      -- Gandhi


      demerphq,
      I stand by my claim. If the value before or after is undefined, then it is not desired. You need to keep moving forward until you find a key with a defined value.

      Cheers - L~R

      Update: After discussing this in the CB, I wanted to record why I interpreted next key with defined value versus just next key. It was based off of:

      without going through all the trouble of making a for loop to check each element after '2' until find one defined.