Java中常用的排序算法包括:
1. 冒泡排序(Bubble Sort):時(shí)間復(fù)雜度為O(n^2),是一種比較簡(jiǎn)單的排序算法,但是效率較低。
2. 選擇排序(Selection Sort):時(shí)間復(fù)雜度為O(n^2),基本思想是選擇未排序中的最小(大)元素,依次放到已排序的序列末尾。
3. 插入排序(Insertion Sort):時(shí)間復(fù)雜度為O(n^2),基本思想是將未排序的元素插入已排序的序列中,將插入位置之后的元素依次后移。
4. 快速排序(Quick Sort):時(shí)間復(fù)雜度為平均O(nlogn),最壞O(n^2),是一種比較高效的排序算法,基本思想是利用分治法將問(wèn)題分解為子問(wèn)題,遞歸地解決問(wèn)題。
5. 堆排序(Heap Sort):時(shí)間復(fù)雜度為O(nlogn),基本思想是利用堆的性質(zhì),建立一個(gè)大頂堆(小頂堆),每次取出堆頂元素,重構(gòu)堆,直到完成排序。
6. 歸并排序(Merge Sort):時(shí)間復(fù)雜度為O(nlogn),基本思想是將待排序序列遞歸地分成兩個(gè)子序列,分別排序后再合并成一個(gè)已排序的序列。
7. 希爾排序(Shell Sort):時(shí)間復(fù)雜度取決于增量序列,最好O(nlogn),最壞O(n^2),是插入排序的改進(jìn)版本,通過(guò)縮小增量來(lái)減小步長(zhǎng),提高效率。
8. 計(jì)數(shù)排序(Counting Sort):時(shí)間復(fù)雜度為O(n+k),適用于元素范圍比較小的情況,基本思想是利用計(jì)數(shù)器統(tǒng)計(jì)元素出現(xiàn)的次數(shù),然后進(jìn)行排序。
9. 桶排序(Bucket Sort):時(shí)間復(fù)雜度為O(n+k),適用于元素范圍比較大的情況,基本思想是將元素根據(jù)大小分到不同的桶中,每個(gè)桶內(nèi)部再進(jìn)行排序,最終合并桶中的所有元素。
以上是Java中常用的排序算法,不同的算法適用于不同的排序需求和排序數(shù)據(jù)規(guī)模,根據(jù)具體情況可以選擇合適的排序算法。