in reply to Re^3: Modified Binary Search
in thread Modified Binary Search
I don't believe it is possible to code a search over sorted data with duplicates that comes even close to be O(log N). Even in theory.You're wrong. You can easily find the smallest index containing your target value by using a condition like:
instead of the usualreturn $i if $A[$i] == $target && ($i == 0 || $A[$i-1] < $target);
And you find the highest index by using:return $i if $A[$i] == $target;
It doesn't increase the run time complexity - the worst case of a binary search is when no match is found anyway.return $i if $A[$i] == $target && ($i == $#A || $A[$i+1] > $target);
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^5: Modified Binary Search
by BrowserUk (Patriarch) on Jan 14, 2010 at 11:55 UTC | |
by salva (Canon) on Jan 14, 2010 at 13:37 UTC | |
by JavaFan (Canon) on Jan 14, 2010 at 13:03 UTC | |
by BrowserUk (Patriarch) on Jan 14, 2010 at 13:06 UTC | |
by BrowserUk (Patriarch) on Jan 16, 2010 at 01:19 UTC | |
by salva (Canon) on Jan 16, 2010 at 08:44 UTC | |
| |
by JavaFan (Canon) on Jan 16, 2010 at 11:36 UTC | |
Re^5: Modified Binary Search
by Anonymous Monk on Aug 11, 2011 at 15:30 UTC |
In Section
Seekers of Perl Wisdom