As described earlier, it can be done in O(n) independently of k.

1. Find the median, M: O(n)
2. Form a second array containing y(i) = abs(x(i) - M): O(n)
3. Find the kth smallest element of this array, K: O(n)
4. Scan the original array and locate the first k elements such that
abs(x(i) - M) <= K: O(n)

Total algorithm: O(n).

Dave

On Jan 27, 10:01 am, Jammy <[email protected]> wrote:
> I agree time should be O(kn)
>
> On Jan 26, 9:55 pm, Sharath Channahalli
>
>
>
> <[email protected]> wrote:
> > a) Find the median - O(n)
> > b) remove the element and again find the median
> > c) conitnue b until you get k-1 elements
>
> > time complexity - kO(n)
>
> > On Wed, Jan 26, 2011 at 9:55 PM, ritu <[email protected]> wrote:
>
> > > solution is nice!!but How to keep track of k closet numbers?
>
> > > On Jan 23, 9:22 pm, ritesh <[email protected]> wrote:
> > > > 1.) find x= median in o(n)
> > > > 2.) subtract x from each number of the array
> > > > 3.) find the k smallest number using o(n) algrithm
>
> > > > On Jan 21, 4:04 am, snehal jain <[email protected]> wrote:
>
> > > > > Given an unsorted array A of n distinct numbers and an integer k where
> > > > > 1 <= k <= n, design an algorithm that finds the k numbers in A that
> > > > > are closest in value to the median of A in O(n) time.
>
> > > --
> > > 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]<algogeeks%2Bunsubscribe@googlegroups­.com>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/algogeeks?hl=en.- Hide quoted text -
>
> - Show quoted text -

-- 
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?hl=en.

Reply via email to