2011-10-19 12:40:51 -04:00
|
|
|
! Copyright (C) 2011 John Benediktsson
|
|
|
|
! See http://factorcode.org/license.txt for BSD license
|
2011-10-14 21:10:49 -04:00
|
|
|
|
|
|
|
USING: arrays assocs kernel math.ranges random sequences sets
|
|
|
|
sorting trees.splay ;
|
|
|
|
|
2011-10-19 12:40:51 -04:00
|
|
|
IN: benchmark.splay
|
2011-10-14 21:10:49 -04:00
|
|
|
|
|
|
|
: initial-alist ( n -- alist )
|
2017-06-01 17:59:35 -04:00
|
|
|
<iota> >array randomize dup zip ;
|
2011-10-14 21:10:49 -04:00
|
|
|
|
|
|
|
: change-random ( newkeys splay keys -- splay' )
|
|
|
|
swapd [ first pick delete-at first2 pick set-at ] 2each ;
|
|
|
|
|
2012-07-19 20:35:47 -04:00
|
|
|
: splay-benchmark ( -- )
|
2011-10-14 21:10:49 -04:00
|
|
|
100,000 initial-alist 10,000 cut
|
|
|
|
[ >splay ] [ randomize 10,000 head ] bi
|
|
|
|
change-random keys dup natural-sort assert= ;
|
|
|
|
|
2012-07-19 20:35:47 -04:00
|
|
|
MAIN: splay-benchmark
|