MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Insertion into sorted list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg71169] Re: [mg71103] Re: Insertion into sorted list
  • From: "Chris Chiasson" <chris at chiasson.name>
  • Date: Thu, 9 Nov 2006 03:40:29 -0500 (EST)
  • References: <eimq10$9b7$1@smc.vnet.net> <200611081108.GAA21961@smc.vnet.net>

Left click the cell bracket.

from the main menu bar:
Cell -> Convert To -> InputForm

cut n paste

Otherwise, you can submit your notebook/package to MathSource.

If you want to open source your software, there are a number of free
hosting services such as SourceForge, Tigris, Google Code...

There are several paid hosting solutions also.

Finally, you could host it yourself.

On 11/8/06, Andrew Moylan <andrew.j.moylan at gmail.com> wrote:
> Thanks for your replies. I've written a function 'InsertSorted' that
> solves this problem using a binary search. Here's the usage string:
>
> InsertSorted::usage = "InsertSorted[l, e]
>     gives the sorted List l with e inserted such that the resulting
> List is \
> also sorted. InsertSorted[l, e, p] uses the ordering function p.";
>
> And here's the function definition, which can be pasted into a new cell
> in a Mathematica notebook:
>
> \!\(\(InsertSorted[lst_List, e_, p_: \((OrderedQ[{#1, #2}] &)\)] :=
>       Module[\[IndentingNewLine]{lower = 1,
>           upper = Length[lst] + 1}, \[IndentingNewLine]While[
>           lower \[NotEqual]
>             upper, \[IndentingNewLine]\(With[{mid =
>                   Floor[\(lower + upper\)\/2]},
> \[IndentingNewLine]Print[
>                 p[lst\[LeftDoubleBracket]mid\[RightDoubleBracket],
>                   e]]; \[IndentingNewLine]If[
>                 p[e, lst\[LeftDoubleBracket]
>                     mid\[RightDoubleBracket]], \[IndentingNewLine]upper
> =
>                   mid, \[IndentingNewLine]lower =
>                   mid + 1\[IndentingNewLine]];\[IndentingNewLine]];\)\
> \[IndentingNewLine]]; \[IndentingNewLine]Insert[lst, e,
>           lower]\[IndentingNewLine]];\)\)
>
> I'm sorry to dsitribute the function in this slightly messy way. I also
> have a notebook and associated automatically-generated .m file, which
> represent a package "InsertSorted`" that can be placed in
> Mathematica/Applications as usual and accessed via the Needs function.
> Can anyone suggest the "correct" way to distribute such packages to any
> users of this newsgroup who might be interested?
>
> Cheers,
> Andrew
>
>
> On Nov 6, 6:59 pm, "Andrew Moylan" <andrew.j.moy... at gmail.com> wrote:
> > Hi all,
> >
> > I have a sorted List. I need to occasionally insert new elements, while
> > always keeping the list sorted. Is there a more efficient way to do
> > this than the most obvious way (calling Append then calling Sort)?
> >
> > Thanks for any help,
> >
> > Andrew
>
>


-- 
http://chris.chiasson.name/


  • Prev by Date: Re: comparing implicit 0 with machine floats
  • Next by Date: Re: Evaluating integral with varying upper limit?
  • Previous by thread: Re: Insertion into sorted list
  • Next by thread: Re: Insertion into sorted list