MathGroup Archive 2011

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

Search the Archive

Re: Delete elements from list..

  • To: mathgroup at smc.vnet.net
  • Subject: [mg116629] Re: Delete elements from list..
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Tue, 22 Feb 2011 04:42:53 -0500 (EST)

f1[mylist_] := Module[{a = {First[mylist]}},
  Scan[If[# > a[[-1]], AppendTo[a, #]] &, Rest[mylist]]; a]

f2[mylist_] := Fold[If[#2 > #1[[-1]], Append[#1, #2], #1] &,
  {First[mylist]}, Rest[mylist]]

mylist = RandomInteger[{1, 100000}, 1000000];

f1[mylist] // Timing

{2.32822, {503, 64497, 98557, 99205, 99964, 99970, 99995, 99996, 
  100000}}

f2[mylist] // Timing

{0.26541, {503, 64497, 98557, 99205, 99964, 99970, 99995, 99996, 
  100000}}


Bob Hanlon

---- Maarten van der Burgt <Maarten.VanDerBurgt at kla-tencor.com> wrote: 

=============
Hallo,

I have a list like:

mylist = {1, 2, 3, 4, 5, 6, 4, 5, 7, 8, 9}

I want to delete any element which is not strictly larger than the
previous element, until my new list has only increasing values.

This means in mylist above I want to delete the 4 and the 5 at position
7 and 8.

Any elegant and fast way for doing this?

In practice I want to do this for a large amount (1000) of very large
lists (1000). So speed is important.

Thanks for your help.

Maarten



  • Prev by Date: Re: How to deal with big matrix?
  • Next by Date: Re: Rational[a,b] vs Rational[1,2]
  • Previous by thread: Re: Delete elements from list..
  • Next by thread: Re: Delete elements from list..