Arrays.sort()排序算法分析

Arrays.sort()根據(jù)入?yún)㈩愋瓦x擇以下排序算法

  • 基本類型數(shù)組使用快速排序
  • 對象數(shù)組使用歸并排序

原因

  • 使用不同類型的排序算法主要是由于快速排序是不穩(wěn)定的,而合并排序是穩(wěn)定的。這里的穩(wěn)定是指比較相等的數(shù)據(jù)在排序之后仍然按照排序之前的前后順序排列。對于基本數(shù)據(jù)類型,穩(wěn)定性沒有意義,而對于對象類型,穩(wěn)定性是比較重要的,因?yàn)閷ο笙嗟鹊呐袛嗫赡苤皇桥袛嚓P(guān)鍵屬性,最好保持相等對象的非關(guān)鍵屬性的順序與排序前一直;
  • 另外一個(gè)原因是由于合并排序相對而言比較次數(shù)比快速排序少,移動(dòng)(對象引用的移動(dòng))次數(shù)比快速排序多,而對于對象來說,比較一般比移動(dòng)耗時(shí)。

補(bǔ)充一點(diǎn)合并排序的時(shí)間復(fù)雜度是n*logn, 快速排序的平均時(shí)間復(fù)雜度也是n*logn,但是合并排序的需要額外的n個(gè)引用的空間。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 排序算法經(jīng)過了很長時(shí)間的演變,產(chǎn)生了很多種不同的方法。對于初學(xué)者來說,對它們進(jìn)行整理便于理解記憶顯得很重要。每種算...
    DNIX閱讀 2,048評論 0 2
  • 總結(jié)一下常見的排序算法。 排序分內(nèi)排序和外排序。內(nèi)排序:指在排序期間數(shù)據(jù)對象全部存放在內(nèi)存的排序。外排序:指在排序...
    jiangliang閱讀 1,519評論 0 1
  • 南京的這兩天,天氣都非常的好,今日更是陽光明媚,我上午和同事一起去做體檢,回去的路上,我提議,反正路程也不遠(yuǎn),走去...
    千葉妖精閱讀 384評論 0 0
  • 源自肉坨坨的內(nèi)心獨(dú)白/ 情不知所起,一往情深 緣不知所起,欲罷不能 某某年你遇到了那個(gè)讓你不知...
    肉坨坨呀閱讀 348評論 0 2
  • 羅杰斯的觀點(diǎn)是,以人為中心的原則可以應(yīng)用在一切幫助關(guān)系中,教育也是一種幫助關(guān)系。不過傳統(tǒng)的教育模式是"壺杯"關(guān)系,...
    Marymlj閱讀 418評論 0 0

友情鏈接更多精彩內(nèi)容