top-down:
M E R G E S O R T E X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 0, 0, 1)E M R G E S O R T E X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 0, 1, 2)E M R G E S O R T E X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 3, 3, 4)E M R E G S O R T E X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 0, 2, 4)E E G M R S O R T E X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 5, 5, 6)E E G M R O S R T E X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 5, 6, 7)E E G M R O R S T E X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 8, 8, 9)E E G M R O R S E T X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 5, 7, 9)E E G M R E O R S T X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 0, 4, 9)E E E G M O R R S T X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 10, 10, 11)E E E G M O R R S T A X M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 10, 11, 12)E E E G M O R R S T A M X P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 13, 13, 14)E E E G M O R R S T A M X L P E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 10, 12, 14)E E E G M O R R S T A L M P X E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 15, 15, 16)E E E G M O R R S T A L M P X E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 15, 16, 17)E E E G M O R R S T A L M P X E E M R G E S O R T E X A M P L E E X A M P L E merge(input, 18, 18, 19)E E E G M O R R S T A L M P X E E M G R E S O R T E X A M P L E E X A M P L E merge(input, 15, 17, 19)E E E G M O R R S T A L M P X E E G M R E S O R T E X A M P L E E X A M P L E merge(input, 10, 14, 19)E E E G M O R R S T A E E G L M M P R X E S O R T E X A M P L E E X A M P L E merge(input, 0, 9, 19)A E E E E E G G L M M M O P R R R S T X E S O R T E X A M P L E E X A M P L E merge(input, 20, 20, 21)A E E E E E G G L M M M O P R R R S T X E S O R T E X A M P L E E X A M P L E merge(input, 20, 21, 22)A E E E E E G G L M M M O P R R R S T X E O S R T E X A M P L E E X A M P L E merge(input, 23, 23, 24)A E E E E E G G L M M M O P R R R S T X E O S R T E X A M P L E E X A M P L E merge(input, 20, 22, 24)A E E E E E G G L M M M O P R R R S T X E O R S T E X A M P L E E X A M P L E merge(input, 25, 25, 26)A E E E E E G G L M M M O P R R R S T X E O R S T E X A M P L E E X A M P L E merge(input, 25, 26, 27)A E E E E E G G L M M M O P R R R S T X E O R S T A E X M P L E E X A M P L E merge(input, 28, 28, 29)A E E E E E G G L M M M O P R R R S T X E O R S T A E X M P L E E X A M P L E merge(input, 25, 27, 29)A E E E E E G G L M M M O P R R R S T X E O R S T A E M P X L E E X A M P L E merge(input, 20, 24, 29)A E E E E E G G L M M M O P R R R S T X A E E M O P R S T X L E E X A M P L E merge(input, 30, 30, 31)A E E E E E G G L M M M O P R R R S T X A E E M O P R S T X E L E X A M P L E merge(input, 30, 31, 32)A E E E E E G G L M M M O P R R R S T X A E E M O P R S T X E E L X A M P L E merge(input, 33, 33, 34)A E E E E E G G L M M M O P R R R S T X A E E M O P R S T X E E L A X M P L E merge(input, 30, 32, 34)A E E E E E G G L M M M O P R R R S T X A E E M O P R S T X A E E L X M P L E merge(input, 35, 35, 36)A E E E E E G G L M M M O P R R R S T X A E E M O P R S T X A E E L X M P L E merge(input, 37, 37, 38)A E E E E E G G L M M M O P R R R S T X A E E M O P R S T X A E E L X M P E L merge(input, 35, 36, 38)A E E E E E G G L M M M O P R R R S T X A E E M O P R S T X A E E L X E L M P merge(input, 30, 34, 38)A E E E E E G G L M M M O P R R R S T X A E E M O P R S T X A E E E L L M P X merge(input, 20, 29, 38)A E E E E E G G L M M M O P R R R S T X A A E E E E E L L M M O P P R S T X X merge(input, 0, 19, 38)A A A E E E E E E E E E E G G L L L M M M M M O O P P P R R R R S S T T X X X A A A E E E E E E E E E E G G L L L M M M M M O O P P P R R R R S S T T X X X
bottom-up:
M E R G E S O R T E X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 0, 0, 1)E M R G E S O R T E X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 2, 2, 3)E M G R E S O R T E X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 4, 4, 5)E M G R E S O R T E X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 6, 6, 7)E M G R E S O R T E X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 8, 8, 9)E M G R E S O R E T X A M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 10, 10, 11)E M G R E S O R E T A X M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 12, 12, 13)E M G R E S O R E T A X M P L E M E R G E S O R T E X A M P L E E X A M P L E merge(input, 14, 14, 15)E M G R E S O R E T A X M P E L M E R G E S O R T E X A M P L E E X A M P L E merge(input, 16, 16, 17)E M G R E S O R E T A X M P E L E M R G E S O R T E X A M P L E E X A M P L E merge(input, 18, 18, 19)E M G R E S O R E T A X M P E L E M G R E S O R T E X A M P L E E X A M P L E merge(input, 20, 20, 21)E M G R E S O R E T A X M P E L E M G R E S O R T E X A M P L E E X A M P L E merge(input, 22, 22, 23)E M G R E S O R E T A X M P E L E M G R E S O R T E X A M P L E E X A M P L E merge(input, 24, 24, 25)E M G R E S O R E T A X M P E L E M G R E S O R E T X A M P L E E X A M P L E merge(input, 26, 26, 27)E M G R E S O R E T A X M P E L E M G R E S O R E T A X M P L E E X A M P L E merge(input, 28, 28, 29)E M G R E S O R E T A X M P E L E M G R E S O R E T A X M P L E E X A M P L E merge(input, 30, 30, 31)E M G R E S O R E T A X M P E L E M G R E S O R E T A X M P E L E X A M P L E merge(input, 32, 32, 33)E M G R E S O R E T A X M P E L E M G R E S O R E T A X M P E L E X A M P L E merge(input, 34, 34, 35)E M G R E S O R E T A X M P E L E M G R E S O R E T A X M P E L E X A M P L E merge(input, 36, 36, 37)E M G R E S O R E T A X M P E L E M G R E S O R E T A X M P E L E X A M L P E merge(input, 0, 1, 3)E G M R E S O R E T A X M P E L E M G R E S O R E T A X M P E L E X A M L P E merge(input, 4, 5, 7)E G M R E O R S E T A X M P E L E M G R E S O R E T A X M P E L E X A M L P E merge(input, 8, 9, 11)E G M R E O R S A E T X M P E L E M G R E S O R E T A X M P E L E X A M L P E merge(input, 12, 13, 15)E G M R E O R S A E T X E L M P E M G R E S O R E T A X M P E L E X A M L P E merge(input, 16, 17, 19)E G M R E O R S A E T X E L M P E G M R E S O R E T A X M P E L E X A M L P E merge(input, 20, 21, 23)E G M R E O R S A E T X E L M P E G M R E O R S E T A X M P E L E X A M L P E merge(input, 24, 25, 27)E G M R E O R S A E T X E L M P E G M R E O R S A E T X M P E L E X A M L P E merge(input, 28, 29, 31)E G M R E O R S A E T X E L M P E G M R E O R S A E T X E L M P E X A M L P E merge(input, 32, 33, 35)E G M R E O R S A E T X E L M P E G M R E O R S A E T X E L M P A E M X L P E merge(input, 36, 37, 38)E G M R E O R S A E T X E L M P E G M R E O R S A E T X E L M P A E M X E L P merge(input, 0, 3, 7)E E G M O R R S A E T X E L M P E G M R E O R S A E T X E L M P A E M X E L P merge(input, 8, 11, 15)E E G M O R R S A E E L M P T X E G M R E O R S A E T X E L M P A E M X E L P merge(input, 16, 19, 23)E E G M O R R S A E E L M P T X E E G M O R R S A E T X E L M P A E M X E L P merge(input, 24, 27, 31)E E G M O R R S A E E L M P T X E E G M O R R S A E E L M P T X A E M X E L P merge(input, 32, 35, 38)E E G M O R R S A E E L M P T X E E G M O R R S A E E L M P T X A E E L M P X merge(input, 0, 7, 15)A E E E E G L M M O P R R S T X E E G M O R R S A E E L M P T X A E E L M P X merge(input, 16, 23, 31)A E E E E G L M M O P R R S T X A E E E E G L M M O P R R S T X A E E L M P X merge(input, 0, 15, 31)A A E E E E E E E E G G L L M M M M O O P P R R R R S S T T X X A E E L M P X merge(input, 0, 31, 38)A A A E E E E E E E E E E G G L L L M M M M M O O P P P R R R R S S T T X X X A A A E E E E E E E E E E G G L L L M M M M M O O P P P R R R R S S T T X X X