$ od -c -N 50000 [phylum]<LISP>KOTO>Lispusers>arraysorter.tedit!2 0000000 X E R O X \t A R R A Y S O R T E 0000020 R \r 2 \r \r 4 \r \r 1 \r \r A R R A Y 0000040 S O R T E R \r 1 \r \r 4 \r \r B y : 0000060 S t e v e P e t e r s ( 0000100 s c p @ X V . m i t . e d u ) 377 0000120 377 \0 \0 \r \0 a \0 n \0 d \0 \r 377 \0 J a 0000140 n P e d e r s e n ( p e d e 0000160 r s e n . p a @ X E R O X . c o 0000200 m ) \r I N T R O D U C T I O N \r 0000220 A R R A Y S O R T E R p r o v 0000240 i d e s f u n c t i o n s f 0000260 o r s o r t i n g o n e - 0000300 d i m e n s i o n a l C M L 0000320 a r r a y s . T w o s o r t 0000340 i n g m o d e s a r e s u 0000360 p p o r t e d , a d e s t r 0000400 u c t i v e i n - p l a c e 0000420 s o r t , a n d a n i n d 0000440 e x s o r t i n w h i c h 0000460 a p e r m u t a t i o n v 0000500 e c t o r i s r e t u r n e 0000520 d . T h e s o r t i n g a 0000540 l g o r i t h m i s q u i c 0000560 k - s o r t a n d t h e s 0000600 o r t o r d e r i s d e t 0000620 e r m i n e d b y a c o m 0000640 p a r e f n w h i c h d e f 0000660 a u l t s t o L E S S P . \r 0000700 S O R T F U N C T I O N S \r ( 0000720 A R R A Y S O R T a r r a y 0000740 c o m p a r e f n ) \t [ F u n 0000760 c t i o n ] \r A r r a y i s 0001000 a o n e - d i m e n s i o n a 0001020 l C M L a r r a y w h i c 0001040 h w i l l b e s o r t e d 0001060 d e s t r u c t i v e l y a 0001100 c c o r d i n g t o t h e 0001120 o r d e r i n g g i v e n b 0001140 y c o m p a r e f n . C o m 0001160 p a r e f n s h o u l d b e 0001200 a f u n c t i o n o f t 0001220 w o a r g u m e n t s w h i 0001240 c h s h o u l d r e t u r n 0001260 T i f a r g 1 i s " l 0001300 e s s " t h a n a r g 2 , 0001320 g i v e n t h a t t h e 0001340 a r r a y w i l l b e s o 0001360 r t e d i n a s c e n d i n 0001400 g o r d e r . C o m p a r 0001420 e f n d e f a u l t s t o 0001440 L E S S P . \r R e t u r n s a 0001460 r r a y . \r ( I N D E X A R R A 0001500 Y S O R T a r r a y i n 0001520 d i c e s c o m p a r e f n ) 0001540 \t [ F u n c t i o n ] \r A r r a 0001560 y i s a o n e - d i m e n 0001600 s i o n a l C M L a r r a y 0001620 t o b e s o r t e d a c 0001640 c o r d i n g t o t h e o 0001660 r d e r i n g g i v e n b y 0001700 c o m p a r e f n . I n d i 0001720 c e s , i f s u p p l i e d 0001740 , s h o u l d b e a o n 0001760 e - d i m e n s i o n a l C M 0002000 L a r r a y o f e l e m e 0002020 n t - t y p e T ; o t h e 0002040 r w i s e a n i n d e x v 0002060 e c t o r w i l l b e s u 0002100 p p l i e d . C o m p a r e f 0002120 n s h o u l d b e a f u 0002140 n c t i o n o f t w o a r 0002160 g u m e n t s w h i c h s h 0002200 o u l d r e t u r n T i f 0002220 a r g 1 i s " l e s s " 0002240 t h a n a r g 2 , g i v e 0002260 n t h a t t h e a r r a y 0002300 w i l l b e s o r t e d 0002320 i n a s c e n d i n g o r d 0002340 e r . C o m p a r e f n d 0002360 e f a u l t s t o L E S S P 0002400 . \r T h e i n d e x v e c 0002420 t o r , i n d i c e s , w 0002440 i l l b e d e s t r u c t i 0002460 v e l y s e t t o a p e 0002500 r m u t a t i o n w h i c h 0002520 w i l l r e o r d e r a r r 0002540 a y i n t h e d e s i r e 0002560 d w a y . A r r a y i s 0002600 n o t s i d e - e f f e c t e 0002620 d . \r R e t u r n s i n d i c 0002640 e s . \r P E R F O R M A N C E 0002660 N O T E \r A l t h o u g h t h 0002700 e a l g o r i t h m i s d 0002720 e s t r u c t i v e q u i c k 0002740 - s o r t , t h e s e s o r 0002760 t i n g f u n c t i o n s d 0003000 o g e n e r a t e g a r b a 0003020 g e s i n c e , i n t h 0003040 e c u r r e n t i m p l e 0003060 m e n t a t i o n o f C M L 0003100 a r r a y s , A R E F a 0003120 n d A S E T c a l l C O N 0003140 S i n e v e r y i n s t a 0003160 n c e . \0 \0 \0 \0 \0 003 ( L I S T 0003200 ( ( P A G E N I L ( F O L I 0003220 O I N F O ( A R A B I C ) S 0003240 T A R T I N G P A G E # 1 ) 0003260 ( 0 0 6 1 2 7 9 2 ) ( ( 0003300 F O L I O N I L ( P A R A L 0003320 O O K S ( Q U A D C E N T E 0003340 R E D ) C H A R L O O K S ( 0003360 S U P E R S C R I P T 0 S I 0003400 Z E 1 0 F A M I L Y M O D 0003420 E R N O V E R L I N E O F F 0003440 S T R I K E O U T O F F U 0003460 N D E R L I N E O F F S L O 0003500 P E R E G U L A R W E I G H 0003520 T M E D I U M ) F O R M A T 0003540 I N F O ( A R A B I C ) ) ( 0003560 1 7 4 3 6 2 8 8 3 6 ) N 0003600 I L ) ( H E A D I N G N I L 0003620 ( H E A D I N G T Y P E R U 0003640 N N I N G H E A D ) ( 8 4 7 0003660 4 4 4 4 4 3 6 ) N I L ) 0003700 ( T E X T N I L N I L ( 8 0003720 4 9 6 4 5 6 6 0 0 ) N I 0003740 L ) ) ) ( P A G E N I L N 0003760 I L ( 0 0 6 1 2 7 9 2 ) 0004000 ( ( F O L I O N I L ( P A 0004020 R A L O O K S ( Q U A D C E 0004040 N T E R E D ) C H A R L O O K 0004060 S ( S U P E R S C R I P T 0 0004100 S I Z E 1 0 F A M I L Y 0004120 M O D E R N O V E R L I N E 0004140 O F F S T R I K E O U T O F 0004160 F U N D E R L I N E O F F 0004200 S L O P E R E G U L A R W E 0004220 I G H T M E D I U M ) ) ( 2 0004240 8 2 4 2 7 2 3 6 ) N I L 0004260 ) ( H E A D I N G N I L ( 0004300 H E A D I N G T Y P E R U N N 0004320 I N G H E A D ) ( 8 4 7 4 4 0004340 4 4 4 3 6 ) N I L ) ( T 0004360 E X T N I L N I L ( 8 4 0004400 9 6 4 5 6 6 0 0 ) N I L ) 0004420 ) ) ( P A G E N I L N I L 0004440 ( 0 0 6 1 2 7 9 2 ) ( 0004460 ( F O L I O N I L ( P A R A 0004500 L O O K S ( Q U A D C E N T 0004520 E R E D ) C H A R L O O K S 0004540 ( S U P E R S C R I P T 0 S 0004560 I Z E 1 0 F A M I L Y M O 0004600 D E R N O V E R L I N E O F 0004620 F S T R I K E O U T O F F 0004640 U N D E R L I N E O F F S L 0004660 O P E R E G U L A R W E I G 0004700 H T M E D I U M ) ) ( 2 8 2 0004720 4 2 7 2 3 6 ) N I L ) 0004740 ( H E A D I N G N I L ( H E 0004760 A D I N G T Y P E R U N N I N 0005000 G H E A D ) ( 8 4 7 4 4 4 0005020 4 4 3 6 ) N I L ) ( T E X 0005040 T N I L N I L ( 8 4 9 6 0005060 4 5 6 6 0 0 ) N I L ) ) ) 0005100 ) ) \0 \0 \0 \0 \0 005 \0 006 \0 . \0 \0 \0 \0 0005120 001 310 \0 \v \0 \0 \0 004 003 004 \0 \0 001 001 310 001 0005140 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005160 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 \0 \0 \0 001 310 0005200 \0 021 \0 \0 \0 004 002 003 \0 \0 \0 \0 \0 \0 \0 \0 0005220 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005240 \0 ( \0 212 \0 212 001 8 \0 006 \0 \0 \0 004 002 003 0005260 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005300 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 \0 \0 \0 001 310 0005320 \0 \v \0 \0 \0 004 002 004 \0 \0 \0 \0 \0 \0 \0 \0 0005340 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005360 \0 ( \0 212 \0 212 001 8 \0 \0 \0 \0 \0 004 002 004 0005400 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005420 \0 \0 \0 \0 \0 \0 \0 \0 \0 D \0 \0 \0 \0 001 310 0005440 \0 \0 \0 \0 \0 \0 003 004 \0 \0 001 001 310 001 \0 \0 0005460 \0 \0 \0 \0 \0 \v P A G E H E A D I N 0005500 G \0 \v R U N N I N G H E A D \0 \0 0005520 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005540 \0 004 \0 \b \0 026 \0 \b T E R M I N A L 0005560 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 027 \0 \t H E 0005600 L V E T I C A \0 \n \0 \0 \0 \0 \0 \0 \0 0005620 \0 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 0005640 \0 \0 \0 002 \0 \0 024 \0 006 M O D E R N \0 0005660 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 006 M O D 0005700 E R N \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0 024 \0 0005720 006 M O D E R N \0 006 \0 \0 \0 \0 \0 \0 \0 0005740 \0 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 0005760 \0 \0 \0 001 \0 \0 022 \0 004 L O G O \0 030 \0 0006000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 006 \0 0006020 \0 \0 005 \0 \0 \0 \0 \b \0 \0 \0 001 \0 \0 \0 \0 0006040 006 \0 \0 \0 \f \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 0006060 \0 006 \0 \0 \0 002 \0 001 \0 \v H R U L E . 0006100 G E T F N 001 \0 024 \0 006 M O D E R N 0006120 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 0006140 \0 \0 004 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 002 \0 0006160 001 \0 \v H R U L E . G E T F N 001 \0 0006200 024 \0 006 M O D E R N \0 \n \0 \0 \0 \0 \0 0006220 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 \0 \0 0006240 \0 002 \0 005 \0 \0 \0 002 \0 001 \0 \v H R U L 0006260 E . G E T F N 001 \0 024 \0 006 M O D E 0006300 R N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 0006320 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 0006340 \f \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 003 \0 \0 0006360 \0 002 \0 001 \0 \v H R U L E . G E T F 0006400 N 001 \0 024 \0 006 M O D E R N \0 \f \0 \0 0006420 \0 \0 \0 \0 002 \0 \0 \0 \0 001 \0 \0 \0 \0 005 \0 0006440 \0 \0 \0 \0 002 \0 005 \0 \0 \0 002 \0 001 \0 \v H 0006460 R U L E . G E T F N 001 \0 024 \0 006 M 0006500 O D E R N \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0 0006520 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 002 0006540 \0 \0 \0 " \0 \0 \0 \0 004 \0 \0 \0 \r \0 \0 002 0006560 \0 004 \0 \0 \0 ' \0 \0 \0 \0 004 \0 \0 \0 \0 \0 0006600 002 \0 004 \0 \0 \0 \f \0 \0 \0 \0 003 \0 \0 \0 001 0006620 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 0006640 \v \0 \0 \0 \0 003 \0 \0 001 % \0 \0 \0 \0 004 \0 0006660 \0 \0 \0 \0 002 \0 004 \0 \0 \0 016 \0 \0 \0 \0 003 0006700 \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 0006720 001 \0 \0 \0 \f \0 \0 \0 \0 004 \0 \0 \0 017 \0 \0 0006740 \0 \0 \a \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 \0 001 0006760 \0 \0 \0 \0 002 \0 \0 \0 \v \0 \0 \0 \0 004 \0 \0 0007000 \0 \0 \0 002 \0 004 \0 \0 001 0 \0 \0 \0 \0 004 \0 0007020 \0 \0 \0 \0 002 \0 004 \0 \0 \0 \r \0 \0 \0 \0 004 0007040 \0 \0 \0 002 \0 \0 \0 \0 001 \0 \0 \0 \0 \0 002 \0 0007060 001 \0 \0 \0 021 \0 \0 \0 \0 004 \0 \0 \0 030 \0 \0 0007100 \0 \0 \a \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 \0 001 0007120 \0 \0 \0 \0 002 \0 \0 \0 \v \0 \0 \0 \0 004 \0 \0 0007140 \0 \0 \0 002 \0 001 \0 \0 001 227 \0 \0 \0 \0 004 \0 0007160 \0 \0 \0 \0 002 \0 001 \0 \0 \0 220 \0 \0 \0 \0 004 0007200 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 021 \0 \0 \0 \0 0007220 004 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 021 \0 \0 \0 0007240 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 277 \0 \0 0007260 \0 \0 004 \0 \0 006 t \0 > z 272 0007273