InsertSort (O(n^2)) and MergeSort (O(n log n)) on different sizes of input, timing in milliseconds size=1000 InsertSort: 0, MergeSort: 10 size=2000 InsertSort: 10, MergeSort: 0 size=4000 InsertSort: 20, MergeSort: 10 size=8000 InsertSort: 70, MergeSort: 10 size=16000 InsertSort: 321, MergeSort: 10 size=32000 InsertSort: 1342, MergeSort: 10 size=64000 InsertSort: 5648, MergeSort: 40 size=128000 InsertSort: 21421, MergeSort: 60 size=256000 InsertSort: 95217, MergeSort: 150 size=512000 InsertSort: 399975, MergeSort: 321 size in which basecase for SmartMerge defaults to InsertSort instead of continuing with MergeSort, timing in milliseconds. optimal appears to be base=32 base=2 Merge: 10574, SmartMerge: 6039 base=4 Merge: 8032, SmartMerge: 5938 base=8 Merge: 7991, SmartMerge: 5567 base=16 Merge: 7971, SmartMerge: 5337 base=32 Merge: 8022, SmartMerge: 5138 base=64 Merge: 8102, SmartMerge: 5248 base=128 Merge: 7992, SmartMerge: 5677 base=256 Merge: 7963, SmartMerge: 7130 base=512 Merge: 8081, SmartMerge: 10545 base=1024 Merge: 7951, SmartMerge: 17154 base=2048 Merge: 7970, SmartMerge: 31105