You are incorrect. Look at the error message more closely:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 49
at java.util.ComparableTimSort.pushRun(Unknown Source)
at java.util.ComparableTimSort.sort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at Test.main(Test.java:80)
The error occurs inside TimSort, not at arrayToSort[sum] = 1;
It's a bug with TimSort going out of bounds (which obviously shouldn't happen ever), not the Test.The equivalent Python code works fine, though.
>>> a=[0]*sum(rls)
>>> sum=-1
>>> for i in rls:
... sum += i
... a[sum] = 1
...
>>> a.sort()
>>>
Takes a real good while, too.
Re:On the Worst-Case Complexity of TimSort
by iCannotEven on Friday August 31, 2018 @11:08AM
(#17886171)
That's because the array to be sorted is packed and inflated, so as to be the worst possible input for that kind of sort.
Worst-case complexity.
Also, I needed to bump my JVM heap up to 16GB (not 9GB as recommended), just to run it.
Use:
No error.