Skip to content

Instantly share code, notes, and snippets.

@kuroneko
Created January 11, 2016 23:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kuroneko/e896a466dc4a1af55c9c to your computer and use it in GitHub Desktop.
Save kuroneko/e896a466dc4a1af55c9c to your computer and use it in GitHub Desktop.
QuickSort in Postscript
% Quicksort
%
% Chris Collins <xfire@xware.cx>
% 17-Sep-2001
/qsort { dup length 1 gt { << exch /xlt [ ] /xgt [ ] /x 6 5 roll dup 0 get
exch dup length 1 sub 1 exch getinterval /xs exch >> begin 0 1 xs length 1
sub { xs exch get dup x lt exch [ exch 3 2 roll { xlt aload pop ] /xlt } {
xgt aload pop ] /xgt } ifelse exch store } for [ xlt qsort aload pop x xgt
qsort aload pop ] end } if } def
[ 5 2 5 7 9 3 ] qsort ==
[ 3 5 2 1 5 2 9 6 3 5 7 ] qsort ==
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment