Re: Insertion into sorted list
- To: mathgroup at smc.vnet.net
- Subject: [mg71222] Re: Insertion into sorted list
- From: "Andrew Moylan" <andrew.j.moylan at gmail.com>
- Date: Fri, 10 Nov 2006 06:38:58 -0500 (EST)
- References: <eimq10$9b7$1@smc.vnet.net><200611081108.GAA21961@smc.vnet.net> <eiusl1$gua$1@smc.vnet.net>
Thanks Chris. The Convert To -> InputForm menu item is the feature I knew should be there and just didn't know about. MathSource looks like the right solution for making packages available. Cheers, Andrew On Nov 9, 8:33 pm, "Chris Chiasson" <c... at chiasson.name> wrote: > 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.moy... 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/
- References:
- Re: Insertion into sorted list
- From: "Andrew Moylan" <andrew.j.moylan@gmail.com>
- Re: Insertion into sorted list