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