java排序算法总结

java排序算法总结

排序,这是一个很古老但是又很经典的问题,世界上有很多中优秀排序算法的实现,在这里,我总结了其他比较常用的几种排序算法

1.java排序算法一览

  1. 冒泡排序和基数排序
  2. 桶排序和计数排序
  3. 归并排序和快速排序
  4. 堆排序
  5. 插入排序和希尔排序

2.分类

java排序算法总结_第1张图片

3.比较

1.时间复杂度比较

算法 乱序时间复杂度 有序时间复杂度
插入排序 O(N^2) O(N)
希尔排序 O(N^2) O(N)
冒泡排序 O(N^2) O(N)
基数排序 O(N) O(N)
桶排序 O(N)
计数排序 O(N)
归并排序 O(NlogN) O(NlogN)
快速排序 O(NlogN) O(N^2)
堆排序 O(NlogN)

2.空间复杂度比较

算法 空间复杂度
插入排序 O(1)
希尔排序 O(1)
冒泡排序 O(1)
基数排序 O(N)
桶排序 O(N+M) M是额外辅助空间(桶数量)
计数排序 O(N)
归并排序 O(N)
快速排序 O(1)
堆排序 O(1)

你可能感兴趣的:(数据结构,java排序算法)