POV-Ray : Newsgroups : povray.general : Sort Server Time
8 Aug 2024 16:21:39 EDT (-0400)
  Sort (Message 11 to 18 of 18)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: Micha Riser
Subject: Re: Sort
Date: 2 Jan 2001 14:43:37
Message: <3A52302F.EDC9DB8@datacomm.ch>
Here is an implementation of the quicksort algorithm in pov. It uses
recurisve macro calls. 

It sorted 10000 numbers in less than a minute. With megapov it goes
about twice as fast.

Hope it is of some use.
- Micha Riser


-------------- begin code ------------------------------

#declare a=array[10000]

////////////////////////////////////////////////////////
#macro Quicksort(L,R)

  #local i=L;
  #local j=R;
  #local c=a[int((L+R)/2)];

  #while(i<j)
    #while(a[i]<c) #local i=i+1; #end
    #while(a[j]>c) #local j=j-1; #end
    #if (i<j)
      #local tmp=a[i];
      #declare a[i]=a[j];
      #declare a[j]=tmp;
      #local i=i+1;
      #local j=j-1;  
    #end  
  #end

  #if (i=j)  #local i=i+1;  #local j=j-1; #end
  #if (L<j) Quicksort(L,j) #end
  #if (i<R) Quicksort(i,R) #end

#end
/////////////////////////////////////////////////////////////


#declare my_seed=seed(0);

#local i=0;
#while(i<10000)
#declare a[i]=rand(my_seed)*10000;
#local i=i+1;
#end

#debug "starting quick sort\n"
Quicksort(0,9999)
#debug "finished.\n"


#local i=0;
#while(i<10000)
#debug str(a[i],3,3)
#debug "\n"
#local i=i+1;
#end


Post a reply to this message

From: Jan Walzer
Subject: Re: Sort
Date: 2 Jan 2001 16:09:01
Message: <3a52436d$1@news.povray.org>
hehe ... ever tried to implement BOZO-Sort ???

I've heard about it and laught...

Goes like this:

1) test if the array is in the order.
2) if not then
3) a=rand(Arraysize)
4) b=rand(Arraysize)
5) swap(a,b)
6) goto 1
7) else ready

... the one who told me about that said also something that prooves, the
termination of the algorithm' if a GOOD! randomizer is used ...

I don't really know, but I think it has a kewl runtime ;-)

--
Jan Walzer


Post a reply to this message

From: Bill Dewitt
Subject: Re: Sort
Date: 2 Jan 2001 18:58:14
Message: <3a526b16$1@news.povray.org>
"Micha Riser" <mri### [at] datacommch> wrote in message
news:3A5### [at] datacommch...
> Here is an implementation of the quicksort algorithm in pov. It uses
> recurisve macro calls.
>
> It sorted 10000 numbers in less than a minute. With megapov it goes
> about twice as fast.

    Not bad! It sorted in ~15 sec.s on my computer (400mhz) so I increased
it by a factor of 10 and it did it in 195 seconds.

    Takes -way- longer to display the debug info than to do the sort...

    This may be very useful, but not for what I was doing, I finished that
yesterday. It turned out that I spent much longer figuring out the sort than
I would have spent just typing in some "random" numbers...


Post a reply to this message

From: David Fontaine
Subject: Re: Sort
Date: 2 Jan 2001 21:46:27
Message: <3A529176.A451A3DF@faricy.net>
Bill Dewitt wrote:

>     Takes -way- longer to display the debug info than to do the sort...

Of course. It's in Windows, in a tiny scrolling frame, with a tile behind it...

--
David Fontaine  <dav### [at] faricynet>  ICQ 55354965
My raytracing gallery:  http://davidf.faricy.net/


Post a reply to this message

From: Bill Dewitt
Subject: Re: Sort
Date: 2 Jan 2001 23:58:45
Message: <3a52b185$1@news.povray.org>
"David Fontaine" <dav### [at] faricynet> wrote in message
news:3A529176.A451A3DF@faricy.net...
> Bill Dewitt wrote:
>
> >     Takes -way- longer to display the debug info than to do the sort...
>
> Of course. It's in Windows, in a tiny scrolling frame, with a tile behind
it...


    Eh... even with messages turned off, it takes way longer.


Post a reply to this message

From: Warp
Subject: Re: Sort
Date: 3 Jan 2001 05:22:46
Message: <3a52fd75@news.povray.org>
Jan Walzer <jan### [at] lzernet> wrote:
: ... the one who told me about that said also something that prooves, the
: termination of the algorithm' if a GOOD! randomizer is used ...

  I have the feeling that it's not possible to make algorithmically a
random number generator that is so good that the array gets sorted in a
finite time for any finite array size. I might be wrong, of course.

: I don't really know, but I think it has a kewl runtime ;-)

  Even with a perfect random number generator it sounds like the average
runtime would be infinite... Weird.

-- 
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/


Post a reply to this message

From: Tom Melly
Subject: Re: Sort
Date: 3 Jan 2001 05:46:10
Message: <3a5302f2$1@news.povray.org>
"Bill Dewitt" <bde### [at] cflrrcom> wrote in message
news:3a526b16$1@news.povray.org...

> yesterday. It turned out that I spent much longer figuring out the sort
than
> I would have spent just typing in some "random" numbers...
>

Well, the 3 virtues of the programmer are: laziness, hubris and impatience.
Put this one down to hubris (and you've got yourself some re-usable code).


Post a reply to this message

From: Jan Walzer
Subject: Re: Sort
Date: 4 Jan 2001 15:39:40
Message: <3a54df8c$1@news.povray.org>
> Jan Walzer <jan### [at] lzernet> wrote:
> : ... the one who told me about that said also something that prooves, the
> : termination of the algorithm' if a GOOD! randomizer is used ...
>
>   I have the feeling that it's not possible to make algorithmically a
> random number generator that is so good that the array gets sorted in a
> finite time for any finite array size. I might be wrong, of course.
>
> : I don't really know, but I think it has a kewl runtime ;-)
>
>   Even with a perfect random number generator it sounds like the average
> runtime would be infinite... Weird.
hehe ... sounds kewl:

the average! runtime is infinite ... (of course, I think so) but:
this would mean, that if there are cases with runtime < oo then there have
to be other cases with a runtime > oo, but what is greater than oo ??? Yes
there certain qualities of infinity, but if you think the normal way and not
in such a mathematically weird way *g*
...

--
Jan Walzer ...


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.