java - How to sort int array efficiently -


i have array of ints

int array[] = ... 

and can sort using

arrays.sort(array); 

but arrays.sort uses quicksort, result in o(n^2) complexity. had idea convert list , sort (mergesort used, upper bound o(n log n)), drawback creates lot of objects due boxing int integer.

my third approach :

array = arrays.stream(array).sorted().toarray(); 

i operate on intstream, unfortunately complexity isn't mentioned in documentation.

i looking similar questions , have found big-o complexity of java.util.stream.stream<t>.sorted() isn't helpful @ all, because there 2 different answers (first of course partially wrong, because arrays.sort isn't o(n log n)). second 1 ? haven't found proof.

you should investigate heapsort, while slower guarantees o(n log n). quicksort vs heapsort

there textbook explanation here.


Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

css - Make div keyboard-scrollable in jQuery Mobile? -

ruby on rails - Seeing duplicate requests handled with Unicorn -