1. 程式人生 > >Java算法

Java算法

算法 冒泡排序 時間 直接插入 時間復雜度 ava 速度 堆排序 log

我們常見的排序分為以下幾類:

  1. 插入排序(直接插入排序,希爾排序)
  2. 交換排序(冒泡排序,快速排序)
  3. 選擇排序(直接選擇排序,堆排序)
  4. 歸並排序
  5. 分配排序(箱排序,基數排序)

  對於以上的排序有什麽不同呢?

  需要的輔助空間組多的:歸並排序, 需要的輔助空間最小的:堆排序,平均速度最快的:快速排序

時間復雜度:

  1. O(nlogn): 快速排序, 堆排序, 歸並排序
  2. O(n2): 直接插入排序, 冒泡排序, 直接選擇排序
  3. O(n): 基數排序

空間復雜度:

  1. O(1): 直接插入排序, 冒泡排序, 直接選擇排序
  2. O(logn): 快速排序
  3. O(n): 歸並排序

  

Java算法