see its log(n) + k where k<=the number of duplicates of the element
being searched.
For log(n), you can continue till your high comes on the element u
desire and not low.


On Wed, Mar 4, 2009 at 6:45 PM, sharad kumar <[email protected]> wrote:
> "search() find any index and then iterates sequentially till the highest
> index" how is this logn
>
> On Wed, Mar 4, 2009 at 6:44 PM, sharad kumar <[email protected]>
> wrote:
>>
>> ya rite....
>>
>> On Wed, Mar 4, 2009 at 5:31 PM, Prunthaban <[email protected]> wrote:
>>>
>>> @sharad - Your solution is O(n) Miroslav's solution is O(logn).
>>> And what are you doing with the 'j' variable in your solution? Why not
>>> simply use a[i] == k then c = i. That is what eventually your solution
>>> is doing and it is O(n).
>>>
>>>
>>>
>>> On Mar 4, 4:32 pm, sharad kumar <[email protected]> wrote:
>>> > pls tell wats difference btwn increasing and non decresing sorted
>>> > array.question clearly tells n sorted array.......
>>> >
>>> > On Wed, Mar 4, 2009 at 4:55 PM, Miroslav Balaz
>>> > <[email protected]>wrote:
>>> >
>>> > > of course, you cannot assume that array is in ascending order, it is
>>> > > in
>>> > > non-decreasing order however not in ascending
>>> > > and you should swap order here :(a[mid+1] > key||mid==high)
>>> >
>>> > > 2009/3/4 Kapil <[email protected]>
>>> >
>>> > >> just fixing a bug
>>> >
>>> > >> what if you write bin_search as this
>>> > >> //assumption array is in ascending order
>>> > >> binsearch(high, low, key, a)
>>> > >> begin
>>> > >>  if low > high
>>> > >>   return -1
>>> > >>  mid = (high+low)/2
>>> > >>  if a[mid] = key And (a[mid+1] > key||mid==high)
>>> > >>    return mid
>>> > >>  if a[mid] <= key
>>> > >>   low = mid+1
>>> > >>  else
>>> > >>   high = mid - 1
>>> > >>  return binsearch(high,low,key,a)
>>> > >> end
>>> >
>>> > >> On Mar 4, 3:46 pm, Kapil <[email protected]> wrote:
>>> > >> > what if you write bin_search as this
>>> > >> > //assumption array is in ascending order
>>> > >> > binsearch(high, low, key, a)
>>> > >> > begin
>>> > >> >  if low > high
>>> > >> >    return -1
>>> > >> >  mid = (high+low)/2
>>> > >> >  if a[mid] = key And a[mid+1] > key
>>> > >> >    return mid
>>> > >> >  if a[mid] <= key
>>> > >> >    low = mid+1
>>> > >> >  else
>>> > >> >    high = mid - 1
>>> > >> >  return binsearch(high,low,key,a)
>>> > >> > end
>>>
>>
>
>
> >
>



-- 
Prakhar

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at http://groups.google.com/group/algogeeks
-~----------~----~----~----~------~----~------~--~---

Reply via email to