Test for "Nothing like being lazy"
Enter size of array (<=0 to end): 5
Enter max integer: 1000
Enter test count: 1000
SortBits elapsed: 31
SortGeneric elapsed: 16
--------------------
Enter size of array (<=0 to end): 50
Enter max integer: 1000
Enter test count: 1000
SortBits elapsed: 31
SortGeneric elapsed: 16
--------------------
Enter size of array (<=0 to end): 500
Enter max integer: 1000
Enter test count: 1000
SortBits elapsed: 47
SortGeneric elapsed: 171
--------------------
Enter size of array (<=0 to end): 5000
Enter max integer: 1000
Enter test count: 1000
SortBits elapsed: 94
SortGeneric elapsed: 1217
--------------------
Enter size of array (<=0 to end): 50000
Enter max integer: 1000
Enter test count: 1000
SortBits elapsed: 515
SortGeneric elapsed: 13946
--------------------
Why do we need to "Enter max integer"?
What if max is MaxLongint or MaxUIntValue (I hope you have enough memory to sort five numbers when one of them is close to the end of the range)?
How about negative numbers?