Arrays.sort底層原理


在數組的數量小於47的情況下使用插入排序,在大於或等於47或少於286會進入快速排序(雙軸快排)
大於286采用歸並排序

在判斷少於286之前還有一個操作

 

 

這里主要作用是看他數組具不具備結構:實際邏輯是分組排序,每降序為一個組,像1,9,8,7,6,8。9到6是降序,為一個組,然后把降序的一組排成升序:1,6,7,8,9,8。然后最后的8后面繼續往后面找。

每遇到這樣一個降序組,++count,當count大於MAX_RUN_COUNT(67),被判斷為這個數組不具備結構(也就是這數據時而升時而降),然后送給之前的sort(里面的快速排序)的方法(The array is not highly structured,use Quicksort instead of merge sort.)

如果count少於MAX_RUN_COUNT(67)的,說明這個數組還有點結構,就繼續往下走下面的歸並排序

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM