The initial problem statement is to figure out what would be the first 10
items if you sorted the list.

I don't see anything about frequency or how many times you've seen a given
item in the statement of the problem.

When I talk about a "best" item, I mean it is the first with regard to
whatever comparison method you're using.

On Thu, Sep 15, 2011 at 1:04 AM, David Powell <d...@djpowell.net> wrote:

> But when an element is dropped from the list, you're effectively resetting
> its seen-count to zero.  It might be seen again, and it might (if you hadn't
> reset the seen-count), have ended up in the top 10.
>
> Or have I misunderstood?
>
> --
> Dave
> On 15 Sep 2011 08:54, "Mark Engelberg" <mark.engelb...@gmail.com> wrote:
> > If you maintain the invariant that at each point, your sorted set
> contains
> > the top 10 you've seen so far, then from that invariant you can conclude
> > that at the end of the traversal, your sorted set contains the top 10 for
> > the overall list.
> >
> > On Thu, Sep 15, 2011 at 12:34 AM, David Powell <d...@djpowell.net>
> wrote:
> >
> >> Does that work?
> >>
> >> There is no guarantee that the top 10 of the overall list matches the
> top
> >> 10 of earlier prefixes, so the candidates that get discarded might be
> part
> >> of the overall top 10, and the elements that pushed them out could just
> be
> >> local maxima.
> >>
> >> --
> >> Dave
> >> On 15 Sep 2011 08:23, "Mark Engelberg" <mark.engelb...@gmail.com>
> wrote:
> >> > You can do one linear pass over your data, accumulating a sorted set
> of
> >> the
> >> > best 10 items you've found so far. You seed the sorted set with the
> first
> >> > 10 items from your list, then continue traversing your list. With each
> >> new
> >> > item you encounter, you ask if it is any better than the worst of the
> >> > best-10-sorted-set. If it is, then you add it to the sorted-set and
> boot
> >> > out the worst. Since the sorted set never exceeds 10 items, there is a
> >> > small, constant bound for how long the operations on the sorted set
> will
> >> > take. Thus this is a O(n) algorithm.
> >> >
> >> > On Wed, Sep 14, 2011 at 10:59 PM, Sunil S Nandihalli <
> >> > sunil.nandiha...@gmail.com> wrote:
> >> >
> >> >> Hi chouser,
> >> >> Thanks for your response. but correct me if I am wrong.. wouldn't
> >> >> sorted-set completely sort the complete collection without actually
> >> taking
> >> >> into account that only the first few elements are needed?
> >> >> Thanks,
> >> >> Sunil.
> >> >>
> >> >>
> >> >> On Tue, Sep 13, 2011 at 7:15 PM, Chouser <chou...@gmail.com> wrote:
> >> >>
> >> >>> On Tue, Sep 13, 2011 at 7:44 AM, Sunil S Nandihalli
> >> >>> <sunil.nandiha...@gmail.com> wrote:
> >> >>> > Hi Everybody,
> >> >>> > I have a very large, but with finite size, collection. I would
> like
> >> to
> >> >>> get
> >> >>> > like first 10 elements in the sorted list . I would use a heap if
> I
> >> were
> >> >>> in
> >> >>> > c++ .. is there a inbuilt implementation of this in clojure? .. Is
> >> there
> >> >>> > some other way to achieve this? some sort of lazy sort would be
> >> perfect.
> >> >>> I
> >> >>> > know I need the full collection to start with .. but that is fine.
> >> >>>
> >> >>> A seq on a sorted set should be pretty efficient.
> >> >>>
> >> >>> (take 3 (sorted-set 8 2 1 4 6 9 7 3))
> >> >>> ;=> (1 2 3)
> >> >>>
> >> >>> --Chouser
> >> >>>
> >> >>> --
> >> >>> You received this message because you are subscribed to the Google
> >> >>> Groups "Clojure" group.
> >> >>> To post to this group, send email to clojure@googlegroups.com
> >> >>> Note that posts from new members are moderated - please be patient
> with
> >> >>> your first post.
> >> >>> To unsubscribe from this group, send email to
> >> >>> clojure+unsubscr...@googlegroups.com
> >> >>> For more options, visit this group at
> >> >>> http://groups.google.com/group/clojure?hl=en
> >> >>>
> >> >>
> >> >> --
> >> >> You received this message because you are subscribed to the Google
> >> >> Groups "Clojure" group.
> >> >> To post to this group, send email to clojure@googlegroups.com
> >> >> Note that posts from new members are moderated - please be patient
> with
> >> >> your first post.
> >> >> To unsubscribe from this group, send email to
> >> >> clojure+unsubscr...@googlegroups.com
> >> >> For more options, visit this group at
> >> >> http://groups.google.com/group/clojure?hl=en
> >> >>
> >> >
> >> > --
> >> > You received this message because you are subscribed to the Google
> >> > Groups "Clojure" group.
> >> > To post to this group, send email to clojure@googlegroups.com
> >> > Note that posts from new members are moderated - please be patient
> with
> >> your first post.
> >> > To unsubscribe from this group, send email to
> >> > clojure+unsubscr...@googlegroups.com
> >> > For more options, visit this group at
> >> > http://groups.google.com/group/clojure?hl=en
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> >> Groups "Clojure" group.
> >> To post to this group, send email to clojure@googlegroups.com
> >> Note that posts from new members are moderated - please be patient with
> >> your first post.
> >> To unsubscribe from this group, send email to
> >> clojure+unsubscr...@googlegroups.com
> >> For more options, visit this group at
> >> http://groups.google.com/group/clojure?hl=en
> >>
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with
> your first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > For more options, visit this group at
> > http://groups.google.com/group/clojure?hl=en
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to