What is the Arrays.sort (arr) code logic?
This article introduces the relevant knowledge of "what is Arrays.sort (arr) code logic". In the operation of actual cases, many people will encounter such a dilemma, so let the editor lead you to learn how to deal with these situations. I hope you can read it carefully and be able to achieve something!
First of all, look at the source code:
Public static void sort (int [] a) {DualPivotQuicksort.sort (a, 0, a.length-1, null, 0,0);}
It calls the sort method of DualPivotQuicksort. At first glance, it thinks it is a fast row. This is what many bloggers on the Internet say. Continue to click and look down (the code is too long. If you don't have the patience to read it, you can skip the code QWQ directly):
Static void sort (int [] a, int left, int right, int [] work, int workBase, int workLen) {/ / Use Quicksort on small arrays if (right-left < QUICKSORT_THRESHOLD) {sort (a, left, right, true); return;} / * Index run [I] is the start of i-th run * (ascending or descending sequence). * / int [] run = new int [Max _ RUN_COUNT + 1]; int count = 0; run [0] = left; / / Check if the array is nearly sorted for (int k = left; k < right; run [count] = k) {if (a [k] < a [k + 1]) {/ / ascending while (+ + k)